Сделать регулярное выражение короче - PullRequest
0 голосов
/ 16 апреля 2011

У меня есть следующий текст: var avarb avar var varb var.Что я хочу сделать, это извлечь только «прямые» var вхождения.Приведенная выше строка содержит 3 из них.

Играя с rubular , я составил следующее регулярное выражение: /\A(var)|\s(var)\s|(var)\z/.Есть ли способ упростить его, чтобы использовать var подстроку в регулярном выражении только один раз?

Ответы [ 4 ]

5 голосов
/ 16 апреля 2011

Попробуйте это, используя границы слов:

 /\bvar\b/
1 голос
/ 16 апреля 2011

Либо используйте версию Alexanders, либо

/(^|\s)(var)($|\s)/       # or:
/(?:^|\s)(var)(?:$|\s)/   # (?: ) will prevent capturing 
0 голосов
/ 16 апреля 2011

Если я вас правильно понимаю, вы можете использовать взгляды и взгляды:

/(?<=^|\s)(var)(?=$|\s)/
0 голосов
/ 16 апреля 2011

/\s+(var)\+/ может показаться достаточным?

...