我正在寻找一个正则表达式来捕获介于2个常量之间的任何文本,例如:
//==Constant1==
-Any
-Other
-Text
//==Constant2==
我需要捕获整个块,或者至少要捕获Constant1和Constant2中的文本,我可以包含换行符,数字,任何其他符号(反斜杠,小括号等)。我尝试过许多正则表达式为:
\/\/==start==(.*)\/\/==end==/s
但这不起作用,有什么建议吗?
最佳答案
这将适用于大多数口味
^//==Constant1==[\n\r]
([\s\S]+?)
^//==Constant2==
请参阅a demo on regex101.com(请注意
multiline
和verbose
修饰符!)。分解,它说:
^//==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]