я хочу проверить 2 шаблона с помощью regex.
я могу проверить те оба шаблона в то же время (как если (condition1 | condition2) условие).
какая-либо идея?
Вы можете сделать это точно так же, как и вы, с вертикальной чертой, разделяющей два выражения +
Например: регулярное выражение (abc) | (def)
будет соответствовать abc
OR def
Это действительно зависит, а именно, вы можете создать свое регулярное выражение с модификаторами «или», подобными этому «(сопоставить это) | (или это)»
. Если вы используете тщательно разработанное регулярное выражение, вам нужно сделать это только:
Pattern p1 = Pattern.compile(regex)
Matcher m = p1.matcher(searchstring)
Один раз. Это, вероятно, наиболее эффективный способ решения проблем. Другой вариант - запустить две пары объектов сопоставления / шаблона, выполнить операции find
до тех пор, пока find
не вернет false, чем подсчитать количество выходов. Если они оба> 0, вы в деле. Другой вариант - если вам нужно только одно или несколько совпадений, выполните:
if ( matcher1.find() & matcher2.find() )
{
...
}