我想匹配以下任何一个字符:<
或>
或<=
或>=
或=
。
这个似乎不起作用:[/</=/>]
答案 0 :(得分:11)
试试这个:
[<>]=?|=
它匹配<
或>
,后跟=
,或仅=
。
答案 1 :(得分:3)
您不需要转义字符类中的任何字符。除此之外,您需要使用量词,以匹配这些字符的重复次数。
你需要这个:
[<>=]{1,2}
根据<=
和>=
的要求,注意量词,以匹配2次重复。
另请注意,这也会匹配 - ==
,<<
。如果您只想匹配这4个字符串,可以使用此正则表达式:
[<>]=?|=
在?
之后使用=
使其成为可选项。因此,第一部分将匹配 - <
,>
,<=
和>=
。然后我们使用管道添加=
。
答案 2 :(得分:2)
我不确定你为什么使用斜线(可能有一些我不知道的冷敷,如果需要可以添加它们)...你的正则表达式目前只匹配一个字符。尝试:
[<=>]{1,2}
如果您希望一个正则表达式仅匹配>
,<
,>=
,<=
和=
,那么还会有更多内容。 coldfusion中的REMatch()函数将返回数组中所有匹配的结果,因此以这种或那种方式指定分隔符或边界很重要,因为它类似于python中的findall
或preg_match_all
in PHP(或标记全局匹配)。
我认为最简单的是\b
:
\b(?:[<>]=?|=)\b
Here's a demo with g
activated
没有这些界限,here's what happens。
编辑:没有意识到这些空间。或许可以解决这个问题吗?
\b\s*(?:[<>]=?|=)\s*\b