#regex #notepad
Вопрос:
Я хочу зафиксировать второе вхождение, используя шаблон регулярных выражений в notepad , который является «Только Флорида; Западная Вирджиния; округ Колумбия».
Notepad
1 Arkansas; Hawaii; South Dakota; North Carolina
2 California;Florida; Washington State; New York; Florida; West Virginia; DC
3 Nevada; Texas; New Mexico; Georgia
Regex Pattern: 'Florida(.*?)DC'
Actual Capture: Florida; Washington State; New York; Florida; West Virginia; DC
Desired Capture: Florida; West Virginia; DC
Ответ №1:
Вы можете использовать негативный взгляд, утверждающий, что больше не будет случаев Флориды справа.
Только для совпадения вам не нужна группа захвата. Также F
и D
не нужно спасаться бегством.
bFloridab(?!.*bFloridab).*
Демонстрация регулярных выражений
Или, при необходимости, сопоставьте первое вхождение и захватите со второго вхождения в группе захвата.
^(?:.*?bFloridab)?.*?b(Floridab.*)
Комментарии:
1. он работает с regex101.com и Notepad , но он не работает с REGEXP_SUBSTR SQL, то значение в моей данных на 30 с разделителем (;), я нашел подход, как это «^[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;([^;]*)» есть ли способ, чтобы сократить шаблон? Это фиксируется до 30-го (;), но это длинная модель.
2. Попробуйте сделать это так и получите значение из группы захвата 2
^([^;]*;){29}([^;]*)
3. Привет @Четвертая птица, это работает. Спасибо.
Ответ №2:
(?:.*)(Florida.*)
Работает ли это на вас?
Он «соответствует» некоторым вещам, но только «захватывает» последнюю Флориду и после этого.
Я проверил это на https://regex101.com/r/cWqhkC/1.
Комментарии:
1. Привет @AaronJ спасибо вам за это, идея есть, но если Флорида встречается один раз, это не так match…it может быть также зафиксировано первое появление справа…
2. Я использую это регулярное выражение regexpal.com/1926, «Флорида.*(Флорида.*)» этот шаблон соответствует первому слову, а не только второму слову…
3. Это требование было неясно в вопросе.
https://regex101.com/r/cWqhkC/1
Работает ли это на вас?