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

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

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

比如说

(?<=这是)(.*)(?=句子)

正则表达式

我使用了lookback(?<=)和lookahead(?=)以便“This is”和“句子”不包含在匹配中,但这取决于您的用例,您也可以简单地编写This is(.*)句子

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

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

更新

正则表达式

这是(?s)(*)句

其中(?s)打开点调用修改器,使与换行符匹配

更新2:

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

与你的例子“这是(一个简单的)句子”相匹配。在Regexr上看到这里

发表评论