RegexApp is a closed source Python package that is used to help individuals to generate Python regular expression pattern by using plain text. RegexApp offers two licenses: Non-Commercial-Use License and Commercial-Use License
Development Status | ALPHA |
---|---|
Availability | Online App by www.geekstrident.com |
Installation | N/A |
Cost | Free of Charge |
Ad-Free | With Ad |
Test Solution | N/A |
Tech Support | N/A |
Integration | N/A |
Development Status | ALPHA |
---|---|
Availability |
Online or Offline App by
CLIENT DEPLOYMENT
or
Online App by PARTNER / THIRD-PARTY services |
Installation | Github or Offline-package |
Cost | Cost per Strategy |
Ad-Free | YES |
Test Solution | YES |
Tech Support | YES |
Integration | YES |
Let's use typo error to demonstrate a process of mitigating this type of error. Assuming user1 wants to create a regex pattern that can search multiple digits following by plus sign in text. For example,
User1 really wants to create a below pattern
Indeed, user1 accidentally creates a pattern without a second back flash
Thus, a commit code without unit test might be a result of
Assuming RegexApp is available. User1 needs to translate the requirements to a format that RegexApp can understand. For this case, multiple digits are altered values. RegexApp's digit keyword is an equivalent representation of this interpretation. Plus sign is fixed value. It's a regular text, just leave it as is.
If user pattern is created
a result of generated pattern from RegexApp can be
Let's use distraction to understand this type of error and find possible way to mitigate it. Assuming user1 is given an assignment to create a regex pattern to match IPv4 address in text.
User1 creates a pattern with testing
Another day, user2 reuses user1's pattern. After testing with new data, user2 sees unexpected outcome. User2 forwards this issue user1.
After studied problem, user1 explain
This type of error can be
and, the practical approach of software development process are
RegexApp needs to collaborate with other services to build high-quality software products.
The main purpose of RegexApp let individuals to reuse the verified solution as many as possible with confident so that individuals can produce the quality work and reduce waste or duplication. For example, developer1 is given an assignment to create an IPv4 regular expression pattern. Assuming developer1 creates IPv4 pattern with some testings,
Developer1 thinks this pattern should work fine for matching or capturing IPv4 address, developer1 decides to implement it to code base. After a while, developer1 receives feedback from end-users that IPv4 address pattern captures unexpected "2.3.5.320" value. Developer1 performs RCA (i.e., Root Cause Analysis) and finds out a problem such as
Technically, "\\d{1,3}(\\.\\d{1,3}){3}" should match IPv4 address and <major>.<minor>.<build>.<revision>. Developer1 decides to resolve this problem to avoid any matching non-IPv4-address issue.
Assuming this quality rework MIGHT take developer1 one day of work or more. If developer1 or team's developer1 doesn't have strategy for reusing this quality work, other developer might WASTE some work hours and MIGHT create other issue. However, if RegexApp is available, developer1 can MANUALLY edit ipv4_address_with_validation solution if RegexApp is OFFLINE version.
Depending on OS and RegexApp name, assuming OS is macOS and app name is RegexPro. Manually appending solution to this "~/.geekstrident/regexpro/user_references.yaml" file. For example,
For example, assuming end-user wants to capture color value in this data set
Copy each data to and paste to Test-Data of Builder - Differential. RegexApp should create
or just manually edit <<separator>> on top to let RegexApp to interpret data set as multiple line-test-data.
For example, assuming end-user wants to capture meats, fruits, and drinks values in this data set
Iteration feature helps end-users to understand how generic snippet or regex pattern get constructed. It uses test data to generate interaction protocol. Individuals need to interact with interaction protocol to build a solution.
Assuming test data is
Click build button on Builder - Iteration, WebRegex should generate this interaction protocol
Interaction protocol has two group of keywords: Operating Keywords and Editing Keywords
Assuming end-user wants to capture temperature value and temperature unit
The new generated snippet should be
The new generated pattern should be
Assuming a first word of test data can be either
Use keep(0) or kvar=v0 to build matching. The new generated snippet should be
The new generated pattern should be
However, if first word of test data can be a value or empty, use Kvar=v0 to solve it
Assuming end-user wants to join temperature and unit variables into one variable and name it as temperature_unit
Step 1: Applying action(temperature,unit-join) to perform join
Step 2: Applying cvar=temperature_unit to perform capturing
Assuming test data is
and the generated interaction protocol is
Assuming end-user wants to capture 123 value and store in flag variable
Step 1: Performing split operation
Step 1: Performing capture operation
SHOULD BE AVAILABLE in BETA VERSION
SHOULD BE AVAILABLE in BETA VERSION
RegexApp employs principle of least effort to boost individuals to quickly recognize problem and confidently build solution. Builder features are generated GENERIC solution which is based on human analogy expression combining generic decision making selection. For example,
Furthermore, RegexApp provide intuitive method to play with data to produce the solution. For example, assuming end-user is given an assignment to parse output of command line that contains interface name, flag value, interface status, interface info, and mtu value.
Assuming below generated snippet and generated pattern are final solution
However, reviewer might disagree below test result because reviewer thinks that interface_status should be "UP", "DOWN", or "ERROR", but it CAN NOT be broadcast.
If end-user uses generated pattern to discuss the unexpected result with data owner, they might need more time to find the root cause.
However, if end-user uses general form or generated snippet to discuss the unexpected result with reviewer or data owner,
data owner or reviewer might quickly make feedback such as
End-user can improve solution by reworking snippet to deliver expected result such as
Furthermore, data owner or reviewer adds additional feedback such as,
End-user continues to improve solution such as
The main purpose of RegexApp application is to simplify a process of creating regular expression pattern to improve code quality. Most features are designed to solve specific problem relating to human error, wasting resources, or complex training. Experience individuals with solid regular expression problem-solving knowledge who rely too much on RegexApp MUST BE a result of lowering regular expression creativity over time.
There are three types of keywords: reserved keyword, system keywords, and user keywords. These keywords associate with keyword arguments to enhance matching or capturing capacity.
These keywords are created by users and stored in ~/.geekstrident/regexpro/user_references.yaml file on deployed system. Keywords MUST NOT DUPLICATE reserved and system keywords. Future version should provide an option to let users to store or to access user keyword by using database. The usage of user keywords is similar to the usage of system keywords
Categories: capturing, alternation, repetition, occurrences, group-occurrences, word-bound, head, tail, and to-do-list.