小编典典

正则表达式匹配两个字符串之间的所有字符

all

示例:“这只是一个简单的句子”。

我想匹配“这是”和“句子”之间的每个字符。应该忽略换行符。我无法弄清楚正确的语法。


阅读 253

收藏
2022-03-07

共1个答案

小编典典

例如

(?<=This is)(.*)(?=sentence)

正则表达式

我使用了lookbehind(?<=)和lookbehind,(?=)因此匹配中不包含“This
is”和“sentence”,但这取决于您的用例,您也可以简单地编写This is(.*)sentence.

这里重要的是您激活正则表达式引擎的“dotall”模式,以便.匹配换行符。但是你如何做到这一点取决于你的正则表达式引擎。

接下来的事情是如果你使用.*or .*?。第一个是贪婪的,将匹配到字符串中的最后一个“句子”,第二个是惰性的,将匹配到字符串中的下一个“句子”。

更新

正则表达式

This is(?s)(.*)sentence

其中 (?s) 打开 dotall 修饰符,.匹配换行符。

更新 2:

(?<=is \()(.*?)(?=\s*\))

与您的示例“这是(一个简单的)句子”相匹配。在Regexr上查看

2022-03-07