2011-08-31 222 views
0

我想建立正则表达式系列与一些字两端正则表达式

cd1_inputchk,rd_inputchk,optinputchk其中inputchk是常见的(结束字符)

请指导为同一

+0

是逗号显著?你需要捕捉任何东西吗?请详细说明正则表达式的用途。如果只是匹配一个单词,你需要的只是'/ inputchk $ /',但让我们知道你会做什么,我们可以帮助JavaScript。 –

+0

这些是不同的复选框 – MayureshP

回答

1

很简单,它是:

/inputchk$/ 

以单词为基础(仅测试匹配/inputchk$/.test(word) ? 'matches' : 'doesn\'t match';)。这之所以有效,是它匹配"inputchk"自带一个字符串(因此$)结束

至于单词的列表,它开始变得更加复杂。

  • 列表中是否有空格?
  • 他们需要吗?

我打算假设no是两个问题的答案,并且还假定列表以逗号分隔。

然后有几种方法可以继续。您可以使用list.split()获得每个字的数组,每个teast,看看他们是否在inputchk结束,或者你可以使用修改后的正则表达式:

/[^,]*inputchk(?:,|$)/g 

这其中的要复杂得多。

  • [^,]说来匹配非,字符
  • *然后说匹配0以上那些非字符,的。 (这将是贪婪)
  • inputchk匹配inputchk
  • (?:...)是一个非捕获括号。它表示匹配字符,但不会将匹配作为结果的一部分进行存储。
  • ,匹配,字符
  • |说,比赛一方其他
  • $说字符串

结束匹配但愿这一切一起将选择字符串,你我们正在寻找,但是犯错很容易,所以我建议你做一些严格的测试,以确保没有任何边缘条件被遗漏。

+1

或者使用分词符:'/ \ w + inputchk(\ b | $)/ g'或类似的。 – RobG

2

这一个应该工作(美元符号基本意思是“字符串结尾”):

/inputchk$/ 
+0

仅供参考'。*'后跟文本诱导回溯。考虑一个非贪婪的限定词 –