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?
Regard开发者_StackOverflows, darkie15
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
- regular-expressions.info/Character class, alternation, grouping
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]*\"$"
精彩评论