【发布时间】:2021-08-23 15:51:40
【问题描述】:
我正在尝试将 2 个正则表达式模式组合成一个,但我无法这样做。 我要解决的问题是获取两个字符之间的字符串,这两个字符可以在一个字符串中出现多次。
string = /users/test/test1/test2/abcde_482_fhsj_38575.txt
我需要在我的结果中得到“abcde”。 当我尝试使用以下正则表达式时,我会在第一个下划线之前获得所有信息
(.*)^[^_]*_
当我尝试使用以下正则表达式时,我得到最后一个“/”之后的所有信息
.*\/(.*)
但我无法将这两种模式结合起来得到“abcde”。我尝试使用“|”作为运营商也可以将它们组合起来,但它没有用。我在这里做错了什么吗?任何正确方向的指针将不胜感激。
【问题讨论】:
-
尝试使用
^[^_]*\/([^\/_]+)进行捕获,参见regex101.com/r/36DWt5/1 -
@WiktorStribiżew,这太棒了,而且效果很好!非常感谢您的帮助!
标签: regex