Regex - захватывать, только если строка существует, если не игнорироватьJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Regex - захватывать, только если строка существует, если не игнорировать

Сообщение Anonymous »

У меня есть такая строка:
  • blabla и (ee.xybfkr_eer in (:something) или 'Y'=:see)
Я хотел бы захватить только строку ee.xybfkr_eer в (:something) в группе.
но иногда строка отсутствует ee. часть:
  • blabla и (xybfkr_eer in (:something) или 'Y'=:see)
Если это так, то я хотел бы зафиксировать группу как xybfkr_eer в (:something).
строка ee может отличаться, поэтому содержит другие буквенные символы.
На данный момент код:

Код: Выделить всё

String command = "blabla and (ee.xybfkr_eer in (:something) or 'Y'=:see)";
String patternText = "(?si).*\\W((\\w+\\.)?\\w*\\sin\\s*\\(\\s*:something\\s*\\)).*";
Matcher matcher = Pattern.compile(patternText).matcher(command);

Assert.assertTrue(matcher.matches());
System.out.println(matcher.group(1).trim());
Но

Код: Выделить всё

(\\w+\\.)?
часть не захватывает ее., если доступно. Это должно работать, если ee. доступен, затем запишите его, в противном случае, если он не существует, игнорируйте. Может ли кто-нибудь помочь мне захватить часть ee., если она доступна?
Я использую Java 8.
Спасибо .

Подробнее здесь: https://stackoverflow.com/questions/792 ... not-ignore
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»