我试图创建一个正则表达式匹配的比较是这样的:

= 445
> 5
>= 22
< 3
<= 42
<> 10

我认为这会工作,但不会:

[=|>|<|>=|<|<=|<>]\s\d+

这是非常重要的是,“>”或“<”上一页“=”。这些运算符将不会是有效的:

=<
=>
>>
<<
==

我使用这个因此比较运营商需要有效的SQL创造一些动态SQL。

任何建议?

没有正确的解决方案

其他提示

(=|>|<|>=|<|<=|<>)\s\d+

或类似的东西: (并没有真正做你想做的,它= <所有2character组合匹配>,但清晰度)

[=><]{1,2}\s\d+

- >当您使用[]括号,这意味着,性格里面的一个人应该发生的(多个|定义可能导致未定义的行为或行为我不知道的)

- >你可能想用简单的括号(),其中|具有 'OR' 的含义。

我想说的EMFI给出的正则表达式是不够好。有一些修改它可以采取表达式这样

"currentDate>=2012/11/07&&currentDate<=2012/11/08";

或这

"currentDate==2012/11/07";

使用该修改的正则表达式

(<[=>]?|==|>=?|\&\&|\|\|)

和给它为“有效”。也许很简单,但至少在我的情况下,足以

编辑: 正则表达式被修改,以便采取比较运算符(<,>,> =,<=,==)和布尔操作符(&&,||)以类似的方式,以类似C语言

的语法[…]表示字符类。为代替分组使用(…)

(=|>|<|>=|<|<=|<>)\s\d+

这是一个更紧凑的一个:

(=|[<>]=?|<>)\s\d+

或者:

(=|<[>=]?|>=?)\s\d+

这人会做你要找的东西。

(<[=>]?|=|>=?)\s\d+

正好解决了这个自己。它匹配<,>,<=,> =,!=,=,<>而不是=>或= <遗憾的是它仍然符合>>。我只是检查,在我的应用程序代码。

([!<>])?([=>])?(?!<)

我现在IM万岁老的文章,但,我已经取得了正则表达式女巫是大小写敏感的,只查找我们所需要的,我希望它的帮助别人。

它的作品!=,<=,> =,==,<,>,发现它只能在字符串的开头。

^(^(!=)?|^(<=)?|^(>=)?|^(==)?|^(<)?|^(>)?)?    
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top