мне нужно, чтобы соответствовать следующей строки:Как совместить строку перед чем-то или в конце строки?
" 4/abc def"
из
" 4/abc def 5/abc"
или
" 4/abc def"
До сих пор мне удалось построить это регулярное выражение:
(?<MyGroup> 4\/(.+)(?=(?: \d\/)))
и I tr чтобы сделать lookahead необязательным ?
или добавить |$
, но затем он ловит все. Могу ли я каким-то образом сделать 5/abc
опциональным?
Я пробовал с этими выражениями, но они не работают в обоих случаях:
(?<MyGroup> 4\/(.+)(?=(?: \d\/)?))
(?<MyGroup> 4\/(.+)(?=(?: \d\/|$)))
EDIT:
Я вынужден использовать период, потому что может любым персонажем. Это поле свободного текста.
для конца строки должн str.endsWith («строка») – Raghuveer
EndsWith не будет работать здесь, потому что это часть большего выражения с несколькими дополнительными полями. – t3chb0t
OK - так вот: '' похоже, что у вас есть XML. У вас есть XML? Потому что, если это так, синтаксический анализ регулярных выражений работает не очень хорошо, но синтаксический анализ XML работает блестяще. –
Sobrique