Регулярное выражение для сопоставления слов только с не специальными символами - PullRequest
1 голос
/ 11 августа 2010

Я пытаюсь найти регулярное выражение, которое будет соответствовать только словам, которые не содержат специальных символов. В следующей строке:

один два: два три четыре пять: пять шесть

Я хочу сопоставить только один, три, четыре и шесть. Я хочу исключить два: два и пять: пять. /[a-zA-Z]+/ соответствует этим словам, но также соответствует «два», «два», «пять» и «пять», поскольку он просто обрабатывает «:» как разделитель для другого слова.

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 11 августа 2010

Я не уверен, какой язык вы используете, поэтому я дам общий обзор того, что делать.

Попробуйте разделить строку по пробелам (т.е. разделить на /\s+/), затем сопоставьте каждую часть с /^[a-zA-Z]+$/.

1 голос
/ 11 августа 2010

Кроме того, вы можете просто использовать (?<=\s+|^)[a-zA-Z]+(?=\s+|$). По сути, это ваше оригинальное выражение, но оно требует

  • префикс (т. Е. (?<=)) пробела или начала строки (т. Е. ^) и
  • суффикс (т. Е. (?=)) пробела или конец строки (т. Е. $).

Это должно сделать это для вас!

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