регулярное выражение для строки в с - PullRequest
3 голосов
/ 30 мая 2010

Я работаю над написанием регулярного выражения, используемого для проверки строки в C. Вот то, к чему я дошел до сих пор

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

для правил - Строка должна начинаться с двойных кавычек - не может содержать символ новой строки

Однако я не могу зафиксировать правило, разрешающее использование «\» или «» в строке, если перед ним стоит «\». Вот что я пробовал:

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

Но, похоже, это не работает. Что может быть не так с регулярным выражением здесь?

С уважением, darkie15

Ответы [ 2 ]

2 голосов
/ 30 мая 2010

Вы неправильно используете классы персонажей и чередования в группе; [\\\|\\"] не то, что вы думаете.

Попробуйте что-то вроде этого:

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

Ссылки

0 голосов
/ 30 мая 2010

Если вы хотите это регулярное выражение:

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

Чтобы записать в C, вы должны иметь двойные кавычки вокруг строки. Затем вы должны избежать экранирования и двойных кавычек внутри выражения.

Вот что у вас может быть:

"^\"[A-Za-z0-9]*[\\t\\n]*\"$"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...