将 2x == 精确匹配到另一个 2x ==
Match exactly 2x == to another 2x ==
如何将 2 个“==”与另一个“==”精确匹配,将其中除 2x == 标签之外的所有内容都包含在内?
例如,我有以下文本,其中我需要获取两个“==”括号之间的所有内容。下面我想得到 A 和 E(我不介意 A 之间的空格)。
== A ==
gremjkgmek
=== B ===
evev3tt3wtegrget
==== C ====
regikegerg
=== D ===
rekgmer
== E ==
emrgmegm
您可以将上面的内容粘贴到 https://regexr.com/
我使用了以下正则表达式:
==([^=]+?)==*
但是我显然匹配了所有内容(A、B、C、D、E),因为它不会在遇到三个或四个“=”标记时忽略。那么我该怎么做呢?
您需要使用 ^ 和 $:
^ ... matches the beginning of the string
$ ... matches the end of the string
这是您的解决方案:
^==([^=]+?)==$
编辑:
在您的示例中,某些行的末尾有空格(可能只是网页上的 copy/past 问题?),在这种情况下,您可能想使用它(还要检查末尾的空格):
^==([^=]+?)==\s*$
请记住,您需要启用多行标志。
https://regexr.com/3mdi3
如何将 2 个“==”与另一个“==”精确匹配,将其中除 2x == 标签之外的所有内容都包含在内?
例如,我有以下文本,其中我需要获取两个“==”括号之间的所有内容。下面我想得到 A 和 E(我不介意 A 之间的空格)。
== A ==
gremjkgmek
=== B ===
evev3tt3wtegrget
==== C ====
regikegerg
=== D ===
rekgmer
== E ==
emrgmegm
您可以将上面的内容粘贴到 https://regexr.com/
我使用了以下正则表达式:
==([^=]+?)==*
但是我显然匹配了所有内容(A、B、C、D、E),因为它不会在遇到三个或四个“=”标记时忽略。那么我该怎么做呢?
您需要使用 ^ 和 $:
^ ... matches the beginning of the string
$ ... matches the end of the string
这是您的解决方案:
^==([^=]+?)==$
编辑: 在您的示例中,某些行的末尾有空格(可能只是网页上的 copy/past 问题?),在这种情况下,您可能想使用它(还要检查末尾的空格):
^==([^=]+?)==\s*$
请记住,您需要启用多行标志。 https://regexr.com/3mdi3