2016-04-05 3 views
-1

У меня есть регулярное выражение: ('0' | ['0' - '9'] + '.' ['0' - '9' 'a' - 'f'] *)Понимание регулярного выражения с OR

для того чтобы проверить это, я использую удобный инструмент под названием http://www.regexpal.com/ дело в том, что я застрял, пытаясь понять логику, вставляя «0» это хорошо, но тогда я не понимаю, почему ИЛИ предотвращает вставку других символов. Любое объяснение приветствуется.

+2

Почему у вас есть котировки в вашем регулярном выражении? И что вы пытаетесь совместить с вашим регулярным выражением? Некоторые полезные примеры были бы полезными. –

+0

Я не понимаю, что вы пытаетесь выполнить с помощью этого регулярного выражения, чтобы я мог даже поиграть с ним, можете ли вы [изменить] некоторые из ваших тестовых примеров и ожидаемых результатов? –

+0

В настоящее время ожидается '.' чтобы быть частью ввода, отличного от «0», я предполагаю, что это единственные кавычки. –

ответ

0

Я не уверен, что вы понимаете, как работают скобки в регулярном выражении. Это не часть ИЛИ, которая мешает вам.

('0'|['0'‐'9']+'.'['0'‐'9' 'a'‐'f']*) 

будет соответствовать либо '0' с кавычками или, например 0000000'z''''9 или что-нибудь еще, как это. Кавычки рассматриваются как буквальные, и период должен быть экранирован, потому что это шаблон.

(0|[0-9]+\.[0-9a-f]*) 

Может быть, что вы ищите. Это будет соответствовать таким значениям, как 0 или 23. или 3.14159

0

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

Большинство ароматизаторов регулярных выражений будут иметь короткое замыкание.

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

Смежные вопросы