示例:“这只是一个简单的句子”。
我想匹配“这是”和“句子”之间的每个字符。应该忽略换行符。我无法弄清楚正确的语法。
例如
(?<=This is)(.*)(?=sentence)
正则表达式
我使用了lookbehind(?<=)和lookbehind,(?=)因此匹配中不包含“This is”和“sentence”,但这取决于您的用例,您也可以简单地编写This is(.*)sentence.
(?<=)
(?=)
This is(.*)sentence
这里重要的是您激活正则表达式引擎的“dotall”模式,以便.匹配换行符。但是你如何做到这一点取决于你的正则表达式引擎。
.
接下来的事情是如果你使用.*or .*?。第一个是贪婪的,将匹配到字符串中的最后一个“句子”,第二个是惰性的,将匹配到字符串中的下一个“句子”。
.*
.*?
更新
This is(?s)(.*)sentence
其中 (?s) 打开 dotall 修饰符,.匹配换行符。
更新 2:
(?<=is \()(.*?)(?=\s*\))
与您的示例“这是(一个简单的)句子”相匹配。在Regexr上查看