对于regex来说还很新,所以在合并两个语句以获取输出时遇到了一些麻烦。这是我正在处理的字符串:
UI - bridge.dashboard>dashboard_dialog>ipm_dismiss_secondary_1806-ENPF-PrReEm-00-8492678
我正在尝试提取最后一个大于号之后和最后一个下划线之前的所有内容。这是我想要的输出:
ipm_dismiss_secondary
到目前为止,比起使用它,我已经能够访问所有内容:
[^>]*$
哪个返回:
ipm_dismiss_secondary_1806-ENPF-PrReEm-00-8492678
使用下划线的所有下划线之前的所有内容:
.*(?=\_)
哪个返回:
UI - bridge.dashboard>dashboard_dialog>ipm_dismiss_secondary
但是,在我生命中,无法弄清楚如何将这两个语句组合在一起以实现所需的输出。
答案 0 :(得分:2)
尝试([^>]+)_[^_]*$
。第一个捕获组包含您要提取的内容。
在捕获组之后,我们匹配一个_
,重复非下划线字符任意次,然后匹配一个换行符。
如果不能令人满意,可以改用positive look-aheads:[^>]+(?=_[^_]*$)
。