Regex 从文件名返回字符串的正则表达式
如何编写将Regex 从文件名返回字符串的正则表达式,regex,Regex,如何编写将 1) 将第一个字符后面和第二个字符前面的字符串捕获为组1 2) 捕获最后一个uu后的字符串作为组2 范例 ASIA_JAP_TOKYO_201109 产出将是 group 1 - JAP group 2 - 201109 你可以做: ^[^_]*_([^_]*).*_([^_]*)$ 在这里,第一个被抓获的群体将是“日本鬼子”,第二个将是“201109” ^[^\u]*.\ u匹配从开始到开始的第一个\u 第一个捕获的组,([^]*)将字符串捕获到下一个。 *\u贪婪地
1) 将第一个字符后面和第二个字符前面的字符串捕获为组1
2) 捕获最后一个uu后的字符串作为组2 范例
ASIA_JAP_TOKYO_201109
产出将是
group 1 - JAP
group 2 - 201109
你可以做:
^[^_]*_([^_]*).*_([^_]*)$
在这里,第一个被抓获的群体将是“日本鬼子”,第二个将是“201109”
匹配从开始到开始的第一个^[^\u]*.\ u
\u
- 第一个捕获的组,
将字符串捕获到下一个([^]*)
。
贪婪地匹配到最后一个*\u
\u
匹配最后一个([^]*)$
之后的字符串,并将其放入捕获的组2中\
为了便于阅读,我可能会为此使用两个单独的正则表达式: 第一个正则表达式:
^[^_]*_([^_]*?)_(.*)$
第二个正则表达式:
^(.*)_([^_]*)$
但是,如果您使用的是Java或Perl之类的工具,我更愿意在下划线上拆分字符串并提取出所需的片段。您可以像使用正则表达式一样使用正则表达式
/^[^_]+_([^_]+).*_([^_]+)$/
/^[^.++...[^.+)$/