正则表达式匹配只有非特殊字符的单词

时间:2010-08-11 19:22:53

标签: regex

我正在尝试提出一个只匹配不包含特殊字符的单词的正则表达式。在以下字符串中:

一二:二三四五:五六

我想只匹配一,三,四和六。我想排除这两个:两个和五个:五个。 /[a-zA-Z]+/匹配这些单词,但它也匹配“two”,“two”,“five”和“five”,因为它只是将“:”视为另一个单词的分隔符。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

我不确定您使用的语言是什么,因此我将提供有关如何操作的高级概述。

尝试按空格分割字符串(即按/\s+/分割),然后将每个部分与/^[a-zA-Z]+$/匹配。

答案 1 :(得分:1)

或者,您可以简单地使用(?<=\s+|^)[a-zA-Z]+(?=\s+|$)。基本上,它是您的原始表达,但需要

  • 空格的前缀(即(?<=))或字符串的开头(即^)和
  • 后缀(即(?=))的空格或字符串的结尾(即$)。

那应该为你做到的!