匹配字符串由给定集合中的子字符串组成

时间:2014-07-30 20:16:23

标签: javascript regex string substring

通过搜索单词字典,我正在尝试查找由子字符串组成的字符串。

首先,找到由字母组成的字符串是直截了当的:
1. [abcdefgjlmnqrsz]+

上方查找包含上述字母的任何字词或短语。我想弄清楚如何找到由子串组成的字符串:

例如dictionary = ["neon","none","dog","bear","bare"]

和正则表达式是:[ar|be|o|ne|n]+

我想找到:neon, bear

但是,正则表达式。 2不正确,因为它找到:neon, noen, bear, bare.

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:4)

一个角色类匹配一个单一字符

您正在寻找

\b(?:ar|be|o|ne|n)+\b

请注意,[things]是一个匹配单个字符的字符类。因此[ar|be|o|ne|n]并不代表您的想法:它意味着“一个字符属于a,r,|,b,e,|,o,|,n,e,|,n

之一

<强>解释

  • \b是一个字边界,匹配一边是字母的位置,另一边不是字母(例如空格字符或字符串的开头)
  • (?: ... )是非捕获组
  • |是交替(OR)运算符