一个短语中的多个短语的正则表达式

时间:2014-08-14 22:35:35

标签: javascript regex

我真的没办法解释这个问题,但我需要一个正则表达式来匹配javascript。

我有一个垃圾邮件防护来匹配字符串但是,我想要多次猜测并匹配使用正则表达式的那些。

例如,我想匹配 thiswordhere 。要返回true,匹配可以是:

  • thiswordhere
  • thisword
  • wordhere

它必须是一个单独的单词,所以没有空格,也没有像单词这个单词

这样的回复

四种可能的结果。我对正则表达式很新,我可以使用regexr:

/(thisword)[here]/g

哪个无法解决问题。我将在接下来的几个月里研究正则表达式,所以我希望看到这个例子的解决方案。

2 个答案:

答案 0 :(得分:2)

要在一行(或字符串)中匹配该文字,您只需将开头^和结束$分隔符添加到正则表达式:

/^((?:this)?word(?:here)?)$/g

Example


快速简便的方法是将这些特定结果指定为选项:

/(thiswordhere|thisword|wordhere|word)/g

Example

稍微好一点的选择可能是指定始终需要“单词”部分,左边是“this”可选,右边是“here”可选:

/((?:this)?word(?:here)?)/g

Example


仅供参考 - 您的正则表达式字面意思是匹配“thisword”,后跟四个字符“h”,“e”,“r”,“e”中的任何一个。您需要说的是“匹配单词,可选地前面加上”this“,并且可选地后跟”here“(上面的示例)。

答案 1 :(得分:1)

你可以使用这样的正则表达式:

\b(?:this)?word(?:here)?\b

<强> Working demo

enter image description here