正则表达式大于和小于

时间:2013-07-05 19:07:03

标签: regex coldfusion

我想匹配以下任何一个字符:<><=>==

这个似乎不起作用:[/</=/>]

3 个答案:

答案 0 :(得分:11)

试试这个:

[<>]=?|=

它匹配<>,后跟=,或仅=

答案 1 :(得分:3)

您不需要转义字符类中的任何字符。除此之外,您需要使用量词,以匹配这些字符的重复次数。

你需要这个:

[<>=]{1,2}

根据<=>=的要求,注意量词,以匹配2次重复。


另请注意,这也会匹配 - ==<<。如果您只想匹配这4个字符串,可以使用此正则表达式:

[<>]=?|=

?之后使用=使其成为可选项。因此,第一部分将匹配 - <><=>=。然后我们使用管道添加=

答案 2 :(得分:2)

我不确定你为什么使用斜线(可能有一些我不知道的冷敷,如果需要可以添加它们)...你的正则表达式目前只匹配一个字符。尝试:

[<=>]{1,2}

如果您希望一个正则表达式仅匹配><>=<==,那么还会有更多内容。 coldfusion中的REMatch()函数将返回数组中所有匹配的结果,因此以这种或那种方式指定分隔符或边界很重要,因为它类似于python中的findallpreg_match_all in PHP(或标记全局匹配)。

我认为最简单的是\b

\b(?:[<>]=?|=)\b

Here's a demo with g activated

没有这些界限,here's what happens

编辑:没有意识到这些空间。或许可以解决这个问题吗?

\b\s*(?:[<>]=?|=)\s*\b