正则表达式提取子字符串

时间:2017-09-22 15:56:00

标签: regex

我放弃了。我不知道正则表达式,并且我花了最近两天的时间试图完成一个简单的任务。因此,我将遭受所有这些简单的问题(有些人可能会说是愚蠢的)问题。

我有一个看起来像这样的字符串: Select isnull(s1.column, s.column) Supplier from table where

换句话说,我想要的是第4个“/”和第4个“_”之间的内容。

非常感谢答案,没有任何解释。回答解释更受欢迎。 :)

谢谢!

2 个答案:

答案 0 :(得分:2)

这应该有效:

.+/(.+)_.+

它基本上会跳过任何字符,直到它找到斜杠,捕获下一部分,直到它到达下面有其他东西的下划线。

答案 1 :(得分:1)

你可以尝试这样的事情。

Regex demo

正则表达式: ^(?:[^\/]+\/){4}\K(?:[^_]+_){3}[^_]+

  

1。 ^表示开始使用字符串。

     

2。 (?:[^\/]+\/){4}[^\/]+\/[^\/]+这将匹配所有/\/匹配/ 1}}和{4}用于匹配此模式四次。

     

3。 \K这会重置当前匹配。

     

4。 (?:[^_]+_){3}[^_]+,此处[^_]+这将匹配除_{3}以外的所有内容三次。

  

注意:确保少数语言不支持\K在这种情况下,您可以在()之后的表达式周围放置\K括号,以使其成为捕获组。