tags:

views:

40

answers:

2

Hi All,

I am working writing a regular expression used to validate string in C. Here is to what I have gone so far

'^"[A-Za-z0-9]*[\t\n]*"$'

for rules - A string should begin with double quotes - May not contain a newline character

However, I am not able to capture the rule for allowing '\' or '"' in a string if preceded with '\'. Here is what I tried:

'^"[A-Za-z0-9]*[\t\n]*[\\\|\\"]?"$'

But this doesn't seem to work. What might be wrong with the regular expression here?

Regards, darkie15

+2  A: 

You're misusing character classes and alternations in group; [\\\|\\"] isn't what you think it is.

Try something like this:

^"([A-Za-z0-9\t]|\\\\|\\")*"$

References

polygenelubricants
A: 

If you want this regular expression:

^"[A-Za-z0-9]*[\t\n]*"$

To notate in C you must have double quotes around the string. Then you must escape the escapes and the double quotes inside the expression.

Here's what you might have:

"^\"[A-Za-z0-9]*[\\t\\n]*\"$"
Delan Azabani