我想匹配以下任何一个字符:<
或>
或<=
或>=
或=
。
这个似乎不起作用:[/</=/>]
尝试这个:
[<>]=?|=
它匹配<
或>
可选地后跟=
,或仅=
其自身。
您不需要转义字符类中的任何这些字符。除此之外,您需要使用量词来匹配这些字符的 1 个以上重复。
你需要这个:
[<>=]{1,2}
注意量词,以匹配 2 次重复,根据<=
和的要求>=
。
另外,请注意,这也将匹配 - ==
, <<
。如果你只想匹配这 4 个字符串,你可以使用这个正则表达式:
[<>]=?|=
使用?
after=
使其成为可选的。因此,第一部分将匹配 - <
、>
、<=
和>=
。然后我们=
使用管道添加。
我不确定您为什么要使用斜杠(可能有一些我不知道的冷融合,如果需要,请将它们添加回来)...您的正则表达式当前仅匹配一个字符。尝试:
[<=>]{1,2}
如果您希望一个正则表达式仅匹配>
, <
, >=
, <=
and =
,那么会有更多内容。Coldfusion 中的 REMatch() 函数将在数组中返回所有匹配的结果,因此以一种或另一种方式指定分隔符或边界很重要,因为它就像findall
在 python 中或preg_match_all
PHP 中(或标记全局匹配)。
我认为最简单的边界是\b
:
\b(?:[<>]=?|=)\b
如果没有这些界限,就会发生这种情况。
编辑:没有意识到空间的一些事情。也许可以解决这个问题?
\b\s*(?:[<>]=?|=)\s*\b