2011-08-31 264 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

僅供參考'。*'後跟文本誘導回溯。考慮一個非貪婪的限定詞 –