{"action":"published","release":{"url":"https://api.github.com/repos/OpenNTF/regex4ls/releases/2468201","assets_url":"https://api.github.com/repos/OpenNTF/regex4ls/releases/2468201/assets","upload_url":"https://uploads.github.com/repos/OpenNTF/regex4ls/releases/2468201/assets{?name,label}","html_url":"https://github.com/OpenNTF/regex4ls/releases/tag/v1.1.0","id":2468201,"tag_name":"v1.1.0","target_commitish":"master","name":"regex4ls-1.1.0","draft":false,"author":{"login":"albers","id":2901725,"avatar_url":"https://avatars.githubusercontent.com/u/2901725?v=3","gravatar_id":"","url":"https://api.github.com/users/albers","html_url":"https://github.com/albers","followers_url":"https://api.github.com/users/albers/followers","following_url":"https://api.github.com/users/albers/following{/other_user}","gists_url":"https://api.github.com/users/albers/gists{/gist_id}","starred_url":"https://api.github.com/users/albers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/albers/subscriptions","organizations_url":"https://api.github.com/users/albers/orgs","repos_url":"https://api.github.com/users/albers/repos","events_url":"https://api.github.com/users/albers/events{/privacy}","received_events_url":"https://api.github.com/users/albers/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2016-01-21T14:53:38Z","published_at":"2016-01-21T16:15:45Z","assets":[{"url":"https://api.github.com/repos/OpenNTF/regex4ls/releases/assets/1231975","id":1231975,"name":"regex4ls-1.1.0.ls","label":null,"uploader":{"login":"albers","id":2901725,"avatar_url":"https://avatars.githubusercontent.com/u/2901725?v=3","gravatar_id":"","url":"https://api.github.com/users/albers","html_url":"https://github.com/albers","followers_url":"https://api.github.com/users/albers/followers","following_url":"https://api.github.com/users/albers/following{/other_user}","gists_url":"https://api.github.com/users/albers/gists{/gist_id}","starred_url":"https://api.github.com/users/albers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/albers/subscriptions","organizations_url":"https://api.github.com/users/albers/orgs","repos_url":"https://api.github.com/users/albers/repos","events_url":"https://api.github.com/users/albers/events{/privacy}","received_events_url":"https://api.github.com/users/albers/received_events","type":"User","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":14394,"download_count":0,"created_at":"2016-01-21T15:30:22Z","updated_at":"2016-01-21T15:30:23Z","browser_download_url":"https://github.com/OpenNTF/regex4ls/releases/download/v1.1.0/regex4ls-1.1.0.ls"}],"tarball_url":"https://api.github.com/repos/OpenNTF/regex4ls/tarball/v1.1.0","zipball_url":"https://api.github.com/repos/OpenNTF/regex4ls/zipball/v1.1.0","body":"# Changes\r\nThis release adds the `RegexMatcher` class.\r\n \r\n`RegexMatcher` combines `java.util.regex.Pattern` and `java.util.regex.Matcher` into one handy LotusScript wrapper to perform Regular Expression operations on text.\r\nYou can do repeated matches on the same string with the `find()` method in order to locate multiple occurrences of pattern matches, and you can access captured groups with the `group()` function. The `replaceAll()` and `replaceFirst()` methods let you replace matching parts with strings that may contain backreferences to captured parts of the original string.\r\n\r\nWhereas the `SimpleRegexMatcher` is targeted to users that are new to the `java.util.regex` classes, this class assumes a basic level of familiarity with the underlying Java classes.\r\n\r\n### Example Code\r\nThis example features capture groups and a backreference to the first capture group.\r\n```vbnet\r\nDim Matcher As New RegexMatcher(\"My name is Presley. Elvis Presley.\", \"name is (\\w+)\\. (\\w+) \\1\\.\", 0)\r\nIf Matcher.find() Then\r\n    ' This prints \"Elvis Presley\"\r\n    Print Matcher.group(2) & \" \" & Matcher.group(1)\r\nEnd If\r\n```\r\nReplace parts of the input using capture groups:\r\n```vbnet\r\nDim Matcher As New RegexMatcher(\"From 10:00 To 12:00\", \"From (\\d\\d:\\d\\d) To (\\d\\d:\\d\\d)\", 0)\r\n' prints \"10:00-12:00\"\r\nPrint Matcher.replaceAll(\"$1-$2\")\r\n```"}}