2016-04-01 4 views
1

Я пытаюсь написать регулярное выражение, которое достигает того же результата, что и grep -w.Regexp эквивалентность

То, что я пришел на сейчас:

var regex = /([^\w]|^)word_to_search([^\w]|$)/; 

и, кажется, правильно работать.

Есть ли «лучшее» решение, о котором вы знаете?

ответ

1

Использование границы слов должно быть проще, так как эквивалент grep -w:

/\bword_to_search\b/ 

По man grep:

-w, --word-regexp
Выберите только те строки, содержащие спички, которые образуют целые слова. Тест состоит в том, что совпадающая подстрока должна быть либо в начале строки, либо перед символом-символом, отличным от слова. Точно так же он должен быть либо в конце строки, либо за ним несимметричный составной символ. Символы, составляющие Word, - буквы, цифры и символ подчеркивания.

+1

Спасибо, я прочитал man grep, и я изменил поведение, насколько мог. Однако я не знал о опции \ b :-) – Simone