Skip to content

VerbalExpressions/HaskellVerbalExpressions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HaskellVerbalExpressions

Haskell Regular Expressions made easy

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.

Other Implementations

You can see an up to date list of all ports on VerbalExpressions.github.io.

How to get started

cd to HaskellVerbalExpressions

cabal install verbalexpressions.cabal

ghc Text/Regex/VerbalExpressions/verbalexpressions.hs examples.hs

Examples

Here's a couple of simple examples to give an idea of how VerbalExpressions works:

Testing if we have a valid URL

-- Create an example of how to test for correctly formed URLs
let expr = searchGlobal >>>
            startOfLine >>>
            find "http" >>>
            possibly "s" >>>
            find ":https://" >>>
            possibly "www" >>>
            anythingBut " " >>>
            endOfLine
            $ verEx

-- Use VerEx's test() function to find if it matches
print $ test "http:https://www.google.com" expr

-- Outputs the actual expression used: ^(?:http)(?:s)?(?::https://)(?:www.)?(?:[^ ]*)$
print $ expr

Replacing strings

-- 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

Shorthand for string replace:

print $ replace "We have a red house" "blue" . find "red" $ verEx

Here you can find the API documentation for Verbal Expressions

Basic usage

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

Terms

  • . anything
  • . anythingBut - String
  • . something
  • . somethingBut - String
  • . endOfLine'
  • . find - String
  • . possibly - String
  • . startOfLine

Special characters and groups

  • .any - String
  • .anyOf - String
  • .br
  • .lineBreak
  • .range - [String]
  • .tab
  • .word

Modifiers

  • .withAnyCase
  • .searchOneLine
  • .searchGlobal

Functions

  • .replace - String(source) String(value)
  • .test

Other

  • .add - String
  • .multiple - String
  • .alt

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages