题
我试图创建一个正则表达式匹配的比较是这样的:
= 445
> 5
>= 22
< 3
<= 42
<> 10
我认为这会工作,但不会:
[=|>|<|>=|<|<=|<>]\s\d+
这是非常重要的是,“>”或“<”上一页“=”。这些运算符将不会是有效的:
=<
=>
>>
<<
==
我使用这个因此比较运营商需要有效的SQL创造一些动态SQL。
任何建议?
没有正确的解决方案
其他提示
(=|>|<|>=|<|<=|<>)\s\d+
或类似的东西: (并没有真正做你想做的,它= <所有2character组合匹配>,但清晰度)
[=><]{1,2}\s\d+
- >当您使用[]括号,这意味着,性格里面的一个人应该发生的(多个|定义可能导致未定义的行为或行为我不知道的)
- >你可能想用简单的括号(),其中|具有 'OR' 的含义。
我想说的EMFI给出的正则表达式是不够好。有一些修改它可以采取表达式这样
"currentDate>=2012/11/07&¤tDate<=2012/11/08";
或这
"currentDate==2012/11/07";
使用该修改的正则表达式
(<[=>]?|==|>=?|\&\&|\|\|)
和给它为“有效”。也许很简单,但至少在我的情况下,足以
编辑: 正则表达式被修改,以便采取比较运算符(<,>,> =,<=,==)和布尔操作符(&&,||)以类似的方式,以类似C语言
的语法[…]
表示字符类。为代替分组使用(…)
:
(=|>|<|>=|<|<=|<>)\s\d+
这是一个更紧凑的一个:
(=|[<>]=?|<>)\s\d+
或者:
(=|<[>=]?|>=?)\s\d+
这人会做你要找的东西。
(<[=>]?|=|>=?)\s\d+
正好解决了这个自己。它匹配<,>,<=,> =,!=,=,<>而不是=>或= <遗憾的是它仍然符合>>。我只是检查,在我的应用程序代码。
([!<>])?([=>])?(?!<)
我现在IM万岁老的文章,但,我已经取得了正则表达式女巫是大小写敏感的,只查找我们所需要的,我希望它的帮助别人。
它的作品!=,<=,> =,==,<,>,发现它只能在字符串的开头。
^(^(!=)?|^(<=)?|^(>=)?|^(==)?|^(<)?|^(>)?)?
不隶属于 StackOverflow