我放弃了。我不知道正则表达式,并且我花了最近两天的时间试图完成一个简单的任务。因此,我将遭受所有这些简单的问题(有些人可能会说是愚蠢的)问题。
我有一个看起来像这样的字符串:
Select
isnull(s1.column, s.column) Supplier
from table
where
换句话说,我想要的是第4个“/”和第4个“_”之间的内容。
非常感谢答案,没有任何解释。回答与解释更受欢迎。 :)
谢谢!
答案 0 :(得分:2)
这应该有效:
.+/(.+)_.+
它基本上会跳过任何字符,直到它找到斜杠,捕获下一部分,直到它到达下面有其他东西的下划线。
答案 1 :(得分:1)
你可以尝试这样的事情。
正则表达式: ^(?:[^\/]+\/){4}\K(?:[^_]+_){3}[^_]+
1。
^
表示开始使用字符串。2。
(?:[^\/]+\/){4}
此[^\/]+\/
,[^\/]+
这将匹配所有/
和\/
匹配/
1}}和{4}
用于匹配此模式四次。3。
\K
这会重置当前匹配。4。
(?:[^_]+_){3}[^_]+
,此处[^_]+
这将匹配除_
和{3}
以外的所有内容三次。
注意:确保少数语言不支持
\K
在这种情况下,您可以在()
之后的表达式周围放置\K
括号,以使其成为捕获组。