首页 > 解决方案 > 正则表达式组合语句以匹配最后一个 > 和最后一个 _ 之前的所有内容

问题描述

正则表达式很新,所以我在组合两个语句来获得输出时遇到了一些麻烦。这是我正在处理的字符串:

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

但是,我一生都无法弄清楚如何将这两个语句组合在一起以实现所需的输出。

标签: sqlregex

解决方案


试试([^>]+)_[^_]*$。第一个捕获组包含您要提取的内容。

在捕获组之后,我们匹配一个_, 重复非下划线字符任意多次,然后匹配一个换行符。

https://regexr.com/3tatl


如果这不令人满意,您可以改用积极的前瞻[^>]+(?=_[^_]*$).

https://regexr.com/3tato


推荐阅读