Regullar Expressions in Haskell

This project received 2 bids from talented freelancers with an average bid price of $106 USD.

Get free quotes for a project like this
Project Budget
$30 - $250 USD
Total Bids
Project Description

I need a implementation of a mechanism to identify the strings based on some regular expressions.


Requires the implementation of a function, "matches", which by receiving a regular expression and a string, determinate, in order, the longest disjoint sub-strings, that matches with the provided expression. For example, knowing that the regular expression "a + | b +" denotes the string which contains at least one character 'a' and strings containing at least one character 'b', this is what will return the application below:

> matches "a+|b+" "abbcccaaa"

["a", "bb", "aaa"]

For the expression "(a|b)+" the result is:

> matches "(a|b)+" "abbcccaaa"

["abb", "aaa"]

The elements that can appear in regular expressions are:

Small letters: a, b etc.

Sequence: ab, aabbb etc.

Parentheses for grouping.

? operator, Example: "ab?c" determine "abc", and with "ac".

"(ab)?c" determine "abc", and with "c".

* operator. Example:

"ab*c" determine "ac", "abc", "abbc" etc.

"(ab)*c" determine "c", "abc", "ababc" etc.

+ Operator. Example:

"ab+c" determine "abc", "abbc" etc., but not "ac".

"(ab)+c" determine "abc", "ababc" etc.,but not "c".

| Operator. Example:

"ab|c"determine"ab" and with "c".

"a(b|c)" determine "ab" and with "ac".

In the absence of parentheses, the prioritization of the operators from the strong to the weak, is as follows:

quantification?, *, +


alternation: |.

For example, the expression "ab * | c 'group is, therefore, as in" (a (b *)) | (c). An alterate method of expression syntax which alters the semantics of the original expression, is "a(b*|c)".

This project must use the parser given in the attachment.

I need this project done until 7 May 2013.

Skills Required

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online