我正在寻找一个正则表达式来捕获介于2个常量之间的任何文本,例如:

//==Constant1==
-Any
-Other
-Text
//==Constant2==

我需要捕获整个块,或者至少要捕获Constant1和Constant2中的文本,我可以包含换行符,数字,任何其他符号(反斜杠,小括号等)。我尝试过许多正则表达式为:
\/\/==start==(.*)\/\/==end==/s

但这不起作用,有什么建议吗?

最佳答案

这将适用于大多数口味

^//==Constant1==[\n\r]
([\s\S]+?)
^//==Constant2==

请参阅a demo on regex101.com(请注意multilineverbose修饰符!)。

分解,它说:
^//==Constant1==[\n\r]  # match //==Constant1== in one line
([\s\S]+?)              # anything else lazily in between
^//==Constant2==        # up until //==Constant2== in another line

根据您的口味,您可能需要将正斜线转义为
^\/\/==Constant1==[\n\r]

09-16 02:18