Можем ли мы проверить несколько шаблонов с помощью регулярных выражений в Java? - PullRequest
5 голосов
/ 16 марта 2010

Я хочу проверить 2 шаблона с помощью регулярных выражений.

Могу ли я проверить эти оба шаблона одновременно (например, условие (условие1 | условие2)).

есть идеи?

Ответы [ 2 ]

12 голосов
/ 16 марта 2010

Вы можете сделать это точно так же, как вы это сделали, с разделением на две части выражения + 1001 *

Например: регулярное выражение (abc)|(def) будет соответствовать abc ИЛИ def

4 голосов
/ 16 марта 2010

Это действительно зависит, а именно, вы можете создать свое регулярное выражение с помощью модификаторов "или", подобных этому "(match this)|(or this)". Если вы используете тщательно разработанное регулярное выражение, вам нужно только сделать это:

Pattern p1 = Pattern.compile(regex)
Matcher m = p1.matcher(searchstring)

Один раз. Это, наверное, самый эффективный способ идти о вещах. Другой вариант состоит в том, чтобы запустить две пары объектов сопоставления / шаблона, выполнять операции find до тех пор, пока find не вернет false, а затем подсчитает количество выходов. Если они оба> 0, вы в бизнесе. Другой вариант, если вам нужен только один или несколько совпадений, для:

if ( matcher1.find() & matcher2.find() )
{
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...