正则表达式选择特定文本之前和之前的所有内容

pez*_*rez 28 regex

我试图使用正则表达式来查找字符串的一部分,并选择一直到该字符串.因此,例如,如果我的字符串是this/is/just.some/test.txt/some/other,我想搜索.txt,当我发现它选择之前和之前的所有内容.txt.

kik*_*iyo 47

执行以下正则表达式后,您的答案是在第一次捕获.

/^(.*?)\.txt/
Run Code Online (Sandbox Code Playgroud)

  • 很好,打败了我.请注意,根据您正在使用的正则表达式引擎,您可能不需要包装`/` (2认同)

Rom*_*lus 35

这匹配到".txt"(不包括它)的所有内容:

^.*(?=(\.txt))

  • +1 表示零宽度正前瞻断言。并不是说在这种情况下它真的有很大的不同。 (2认同)

pro*_*ard 6

你可以做...

(.*?)\.txt
Run Code Online (Sandbox Code Playgroud)

在这里测试

  • +1,这实际上比我的答案要好,因为我的正则表达式中实际上并不需要`^`(是多余的)。 (2认同)

ari*_*man 6

^(.*)text
Run Code Online (Sandbox Code Playgroud)

这对我有用,但实际上我也试图获取字符串之后的所有内容。表达式的第一部分应该回答你的问题。

^(.*)text([\s\S]*)$
Run Code Online (Sandbox Code Playgroud)

where^(.*)取之前的所有内容(包括文本),而([\s\S]*)$取之后的所有内容(包括文本)。在regexr.com/6cpqg进行了测试。

参考: