regex - 正则表达式:获取“路径”的倒数第二部分
问题描述
我有这样的事情:
>AAA>BBB>CCC>DDD
和
([^>]*$)
我得到了最后一部分DDD
。我怎样才能得到它之前的部分,CCC
?
谢谢!
解决方案
您可以使用
REGEXP_SUBSTR('>AAA>BBB>CCC>DDD', '([^>]+)>[^>]+$', 1, 1, NULL, 1)
正([^>]+)>[^>]+$
则表达式将匹配并捕获除 之外的任何 1+ 字符并将其捕获到组 1>
中,然后将匹配>
后跟除>
字符串末尾之外的任何 1+ 字符。
最后一个参数 ,1
告诉REGEXP_SUBSTR
只返回捕获的子字符串。
见在线演示。
另一种方法是替换整个字符串,但保留您选择的捕获部分:
REGEXP_REPLACE( '>AAA>BBB>CCC>DDD', '.*>([^>]+)>[^>]+$', '\1')
查看另一个在线演示。
在这里,.*>
将匹配直到 的所有字符串>
,然后([^>]+)
将捕获除字符串之外的任何 1+ 个字符>
,然后>[^>]+$
将匹配并消耗除字符串末尾>
之外的 1+ 个字符。>
推荐阅读
- ruby-on-rails - Rails 如何在 input_field 中以不同方式解析 html?
- archer - RSA Archer - 申请和问卷的区别
- azure - 用于 Azure 中 Kubernetes 的 Traefik(前端重定向到 https)
- javascript - Ember 模块统一堆栈跟踪:错误:断言失败:“数据适配器”不是可识别的类型
- python - 如何为 np.random.uniform 生成种子?
- json - 转换 Json - 不带引号的整数,带引号的字符串
- php - 如何防止 Stripe 统计信用卡被拒的客户?
- autohotkey - AutoHotkey 无需更换即可发送
- php - 拉拉维尔 | 使用 gitlab ci 部署和自动部署
- python - 基本结构 SSH 连接