регулярное выражение требует чего-то впереди, но не включает в себя - PullRequest
1 голос
/ 28 января 2010

Я хочу регулярное выражение, которое будет генерировать совпадение, когда оно встречает «целое число xyz», но возвращает только «xyz» в качестве соответствующего текста. 'xyz' может быть идентификатором (буквы + цифры + подчеркивание).

xyz сам по себе не генерирует совпадений, только xyz, которому предшествует 'integer'

спасибо!

Ответы [ 5 ]

1 голос
/ 28 января 2010

На каком языке? В Perl 5.10 или PHP 5 я бы использовал \K:

/integer \K\w+/

Для большинства других языков я бы посоветовал посмотреть:

(?<=integer )\w+

Если это JavaScript, я бы порекомендовал стать читателем блога Стива Левитана . Если подумать, я бы порекомендовал это в любом случае. : -)

Конечно, предполагается, что регулярное выражение должно соответствовать только имени переменной. В противном случае я бы пошел с рекомендацией других респондентов об использовании группы захвата.

1 голос
/ 28 января 2010

Это зависит от того, какой язык программирования вы используете. Вам понадобится регулярное выражение с группой, вторые скобки () содержат имя переменной.

integer\s+([^,;\s]+)
1 голос
/ 28 января 2010

Это невозможно. Если вы хотите, чтобы он совпадал с xyz в "integer xyz", но не в "just xyz", то вы действительно ищете совпадение с "integer xyz".

Что вам, вероятно, нужно сделать, это ожидать, что совпадение будет «integer xyz», а затем очистить совпадение для извлечения части «xyz».

0 голосов
/ 28 января 2010

Я что-то упускаю или вы просто не заключили xyz в скобки, где xyz - это то, что вас волнует (в вашем случае это выглядит как [a-zA-Z0-9 _] +)?

так целое число ([a-zA-Z0-9 _] +)

который вы затем ссылаетесь на то, что в скобках с $ 1 или эквивалентным, учитывая ваш язык

0 голосов
/ 28 января 2010
/integer\s+([a-zA-Z0-9_]+)/

затем получите обратную ссылку \ 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...