如何编写一个通用的正则表达式 1)在第一个_之后和第二个_之前捕获字符串作为组1 2)在最后_之后捕获字符串作为组2
实施例
ASIA_JAP_TOKYO_201109
输出
group 1 - JAP
group 2 - 201109
答案 0 :(得分:2)
你可以这样做:
^[^_]*_([^_]*).*_([^_]*)$
这里首先捕获的组将是" JAP"第二个是" 201109"。
^[^_]*_
首先与第一个_
匹配
第一个捕获的群组([^_]*)
捕获字符串到下一个_
.*_
贪婪地匹配到最后_
([^_]*)$
匹配上一个_
之后的字符串,并将其放入捕获的第2组。
答案 1 :(得分:1)
出于可读性目的,我可能会使用两个单独的正则表达式:
第一个正则表达式:
^[^_]*_([^_]*?)_(.*)$
第二个正则表达式:
^(.*)_([^_]*)$
但是如果您使用的是Java或Perl等工具,我宁愿将字符串拆分为下划线并提取出您想要的部分。
答案 2 :(得分:1)