2013-10-10 2 views
-2

В .NET это соответствует всем. В Java только пустая строка.- это регулярное выражение «|» Предполагалось, что все или только пустая строка?

Именно так реализованы их двигатели с регулярным выражением.

Но как я могу заставить механизм регулярных выражений .NET соответствовать | против только пустой строки или Java regex engine, чтобы соответствовать ей против всего?

+0

Вы можете объяснить проблему с образцом кода? – Damith

+1

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

+0

Я думаю, вам будет трудно сказать, что механизм регулярных выражений будет вести себя по-другому (вы можете настроить его на синтаксический анализ как EMCAscript), вероятно, было бы легче написать код, чтобы явно проверять пустые строки перед использованием regex. – Matthew

ответ

1

В Java символ | в регулярном выражении является operator that matches the expressions on either side of the pipe.

В зависимости от того, что вы подразумеваете под сочетанием всего, на Java вы можете использовать .*, который соответствует любому символу ноль или более раз.

6

| является OR для регулярных выражений в Java:

X|Y -> Либо X или Y

1

| трибунами для регулярного OR работы.

Дополнительная информация:

Источник http://www.regular-expressions.info/alternation.html

Если вы хотите искать буквального текста cat или dog, отделите оба варианта с вертикальной чертой или символ трубы |: cat|dog.

Если вам нужно больше вариантов, просто развернуть список: cat|dog|mouse|fish.

Надеюсь, это поможет! :)

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