2015-02-11 131 views
1

我只想匹配「abcunit」,「hedhdunit」,「ewedfunit」等單詞,並使用正則表達式從文本文件進入數組。任何人都可以告訴我怎麼才能得到這個單詞。因此,我使用/(....unit)/g,但「單位」之前的字符數是不同的。任何人都可以告訴完美的正則表達式。任何幫助將不勝感激。Perl正則表達式匹配

單位:abcunit

單位:hedhdunit

單位:ewedfunit

單位:eedunit

+1

您的意見和預期產出是什麼? – 2015-02-11 03:12:14

+0

Hello Avinash,我的預期輸出是數組,逐行逐行排列。 – 2015-02-11 03:20:00

+0

你的數據實際上是什麼樣的? – hwnd 2015-02-11 03:21:28

回答

1

你可以試試下面的正則表達式:

\b[a-z]+unit\b 

visual regex

解釋的正則表達式:

NODE      EXPLANATION 
-------------------------------------------------------------------------------- 
    \b      the boundary between a word char (\w) and 
          something that is not a word char 
-------------------------------------------------------------------------------- 
    [a-z]+     any character of: 'a' to 'z' (1 or more 
          times (matching the most amount possible)) 
-------------------------------------------------------------------------------- 
    unit      'unit' 
-------------------------------------------------------------------------------- 
    \b      the boundary between a word char (\w) and 
          something that is not a word char 
+0

嘿保羅。它是匹配這兩個詞導致兩個詞在comman中有單位。我怎麼才能得到第二個字。像abcunit – 2015-02-11 03:27:33

+0

是的,我得到它謝謝保羅。 – 2015-02-11 03:32:46

+0

不客氣。不要忘記,如果答案滿意地解決了您的問題,您可以[接受它](http://meta.stackoverflow.com/a/5235/227183)。 ;-) – 2015-02-11 03:35:55

2

以下應該做你所需要的。

my @matches = $str =~ /\b\w+unit\b/g;