Regular expression help

Tags:

Answer: 1

33 hours ago

The strings to be matched are based on length. String S should be matched iff (|S| mod 3) > (|S| mod 2) where |S| is the length of the string.

I've tried to find wrt LCM but I don't know how to proceed with the solution.

The length that can be accepted is 2, 4, 5, 8, 10, 11, ... How to build this regex.

Added by: Fausto Hoppe Jr.

Answer: 2

17 hours ago

let the strings consist of lowercase alphabets for simplicity, so [a-z] is one character

The accepted lengths are a sequence 2, 4, 5, 8, 10, 11, 14, 16, 17, 20, 22, ... We can group these as {2}, {4,5,8}, {10,11,14}, {16,17,20}, ...

Notice that 4 on the addition of 6 gives 10, 5 on the addition of 6 gives 11, and so on.

To build the regex, consider the special cases first: length of 2, regex would be [a-z]{2} similarly for lengths 4, 5 and 8 regex would be [a-z]{4}, [a-z]{5}, [a-z]{8}

For lengths greater than 8, zero or more, six-character string is appended so the final regex would be

[a-z]{2} + ( [a-z]{4} )( [a-z]{6} )* + ( [a-z]{5} )( [a-z]{6} )* + ( [a-z]{8} )( [a-z]{6} )*
Added by: Briana O'Reilly

Popular Search

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9