Мне нужна ваша помощь, ребята! Это сложная проблема с Java-регулярным выражением, которая искала решение в течение пары часов ... Вот оно:
В следующем тексте я хочу найти слово "лодка" ...
- и включить «связку», если место перед ним.
- и включить «пропеллер», если место сразу после него.
- или не совпадать, если ему предшествует «»для "даже с" кучей "между ними.
- или не совпадать, если за ним следует" трейлер ", даже с" пропеллером "между ними.
У меня есть лодка, чтобы продать. Он поставляется с дополнительными гребными винтами, но не поставляется с лодочным прицепом (лодка довольно большая, поэтому вам также может понадобиться лодочный прицеп). Раньше у меня была куча лодок, но моя страсть к лодке со временем угасла. Я не думал, что люди будут интересоваться кучей лодок, но это моя последняя, так что вы! :)
Следующие части должны совпадать:
- лодка ("лодка")
- связка лодок («лодке» предшествует «связка»)
- гребной винт ("лодка, за которой следует" пропеллер ")
Следующие части НЕ должны совпадать (даже частично):
- для лодки ("лодка", перед которой стоит "за")
- прицеп для лодки ("лодка с" прицепом ")
- для группы лодок («лодке» предшествует «куча», за которой следует «для»)
- лодочный прицеп («лодка», затем «пропеллер», за которым следует «трейлер»)
Я получил этот пример настройки в регулярном выражении 101 (https://regex101.com/r/o6S4SP/22), но этоне работает должным образом: - (
PS: я использую Regex101 для примера, но "(SKIP) (FAIL)" не поддерживается в синтаксисе регулярных выражений Java.
Надеюсь, кто-нибудь может помочь: -)