Выделение слова после определенного слова с помощью регулярного выражения (регулярное выражение)

#regex #lookaround

#регулярное выражение #посмотрите вокруг

Вопрос:

Короче говоря, я пытаюсь подобрать слово, которое стоит после определенного слова.

Итак, у меня есть строка, которая

 Name=James  
Age=55  
City=New York  
 

Теперь я хочу выбрать все после «Age =», но не включая «Age =».

Короче говоря, я хочу выбрать только «55». В конце каждой строки есть символ новой строки. Теперь я посмотрел на Внешний вид, как
(?!(Age)).*r

Что не работает.

открыт для предложений здесь.

Ответ №1:

То, что вы ищете, — это «позитивный взгляд сзади».

 (?<=your pattern)
 

Это выглядит за текущим местоположением, и оно должно совпадать.

Итак, в вашем случае вы хотите сделать:

 (?<=Age=).*$
 

Комментарии:

1. Спасибо… Я запустил тест в Oracle (используя REGEXP_SUBSTR), и он по-прежнему возвращает null. Я даже проверил несколько веб-сайтов и приложение Notepad с помощью RegExp, и оно ничего не вернуло, я быстро что-то придумал на Java, и это работает, так что спасибо, я не схожу с ума

Ответ №2:

Попробуйте это:

 (?<=Age=).*
 

Вы должны использовать поиск сзади.

Имейте в виду, что не все регулярные выражения имеют lookbehind (например, Javascript не имеет)

Ответ №3:

 "(?<=Age=).*$"

kent$ echo "Name=James  
dquote> Age=55  
dquote> City=New York "|grep -Po "(?<=Age=).*$"
55
 

Ответ №4:

Ответ таков (?<=Age=)w

w соответствует любому символу слова (a-z, 0-9)