Извлечение слов в предложении с помощью регулярных выражений - PullRequest
2 голосов
/ 31 декабря 2011

Я хочу извлечь последние два слова из предложения и заменить их другими словами. Позвольте мне описать на примере:

word1 word2 word3 word4 .... wordn-2 wordn-1 wordn

Я хочу заменить это предложение регулярным выражением, чтобы я получил следующее предложение:

wordn-1 wordn : word1 word2 word3 word4 .... wordn-2

Я пытался

^(\w)* (\w)$

код регулярного выражения для замены на

$2 : $1

но это не работает. Заранее спасибо за предложения.

Ответы [ 2 ]

2 голосов
/ 31 декабря 2011
^(.*)\s+(\w+\s+\w+)$

будет работать с:

$2 : $1

Например, в JavaScript:

"word1 word2 word3 word4".replace(/^(.*)\s+(\w+\s+\w+)$/, "$2 : $1");

возвращает:

"word3 word4 : word1 word2"
0 голосов
/ 31 декабря 2011

Попробуйте:

^(.+)\b(\w+\s+\w+)$

Ваше регулярное выражение не будет соответствовать по нескольким причинам:

  • вы повторяете захваченную группу вместо захвата повторяющейся группы: (\w)* будет захватывать последний символ слова, вместо этого вы хотели написать (\w*); и (\w) не будет соответствовать пробелу;
  • Более того, вы используете квантификатор * вместо +: ваша первая группа могла быть пустой - * означает «ноль или более»;
  • и, наконец, ваша вторая группа, (\w), соответствует только одному символу слова.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...