VerbalExpressions is a Haskell library that helps to construct difficult regular expressions.
This haskell lib is based off of the (original) Javascript VerbalExpressions library by jehna.
You can see an up to date list of all ports on VerbalExpressions.github.io.
cd to HaskellVerbalExpressions
cabal install verbalexpressions.cabal
ghc Text/Regex/VerbalExpressions/verbalexpressions.hs examples.hs
Here's a couple of simple examples to give an idea of how VerbalExpressions works:
-- Create an example of how to test for correctly formed URLs
let expr = searchGlobal >>>
startOfLine >>>
find "http" >>>
possibly "s" >>>
find "://" >>>
possibly "www" >>>
anythingBut " " >>>
endOfLine
$ verEx
-- Use VerEx's test() function to find if it matches
print $ test "http://www.google.com" expr
-- Outputs the actual expression used: ^(?:http)(?:s)?(?:://)(?:www.)?(?:[^ ]*)$
print $ expr
-- Create a test string
let replaceMe = "Replace bird with a duck"
-- Create an expression that seeks for word "bird"
let expr2 = find "bird" $ verEx;
-- Execute the expression
print $ replace replaceMe "duck" expr2
print $ replace "We have a red house" "blue" . find "red" $ verEx
Here you can find the API documentation for Verbal Expressions
Basic usage of Verbal Expressions is through a singleton, called verEx
, that creates a new expression for you:
let expr = (all of your terms) $ verEx
##API
- . anything
- . anythingBut - String
- . something
- . somethingBut - String
- . endOfLine'
- . find - String
- . possibly - String
- . startOfLine
- .any - String
- .anyOf - String
- .br
- .lineBreak
- .range - [String]
- .tab
- .word
- .withAnyCase
- .searchOneLine
- .searchGlobal
- .replace - String(source) String(value)
- .test
- .add - String
- .multiple - String
- .alt