2016-06-20 91 views
2

返回字符串如何寫一個通用的正則表達式,會先經過
1)捕獲串_和最後_爲第2組正則表達式,從文件名

前後第二_爲1組
2)捕獲的字符串

ASIA_JAP_TOKYO_201109 

產出將是

group 1 - JAP 
group 2 - 201109 
+0

'/^[^_]+_([^_]+).*_([^ _] +)$ /' –

回答

2

你可以這樣做:

^[^_]*_([^_]*).*_([^_]*)$ 

這裏第一個捕獲的組將是「JAP」,第二個將是「201109」。

  • ^[^_]*_從開始比賽高達第一_

  • 第一捕獲組,([^_]*)捕獲串高達下一個_

  • .*_貪婪地高達最後_

  • ([^_]*)$匹配在最後_之後匹配字符串並放置它在拍攝的第2組

Demo

1

爲了提高可讀性,我可能會使用兩個單獨的正則表達式是:

一正則表達式:

^[^_]*_([^_]*?)_(.*)$ 

二的正則表達式:

^(.*)_([^_]*)$ 

但是,如果您使用的是諸如Java或Perl之類的工具,我寧願將字符串拆分爲下劃線,並提取出您想要的部分。