2015-12-17 37 views

回答

4

只需使用正則表達式如下:

\bARC\w*\b 

或(從匹配排除下劃線)

\bARC[[:alnum:]]*\b 

regex demo

正則表達式匹配:

  • \b - 字邊界(ARC在僅一個單詞的開始)
  • ARC - 0或多個字母,數字或下劃線 - 字符
  • \w*的固定順序。 備註:如果您只想限制匹配字母和數字,請將此\w*替換爲[[:alnum:]]*
  • \b - 詞末(尾)邊界。

參見IDEONE demo here(輸出:ARCabcARC12)。

NOTE2:如果您打算匹配Unicode字符串,可以考慮使用以下任一正則表達式的:

  • \bARC\p{Word}*\b - 這種變化後ARC
  • \bARC[\p{L}\p{M}\d]*\b將匹配下劃線詞 - 這正則表達式匹配在ARC之後只有數字和Unicode字母的單詞。
+1

THX這麼多 - 很好的解釋 – timpone

1

對於良好的可讀性,您可以將字符串分割成單詞,然後選擇您喜歡的類型:

str = "h ARCabc s and other ARC12" 
target = "ARC" 

str.split.select { |w| w.include?(target) } 
    #=> ["ARCabc", "ARC12"] 

如果字必須用target開始:

str.split.select { |w| w.start_with?(target) } 
相關問題