![](/img/trans.png)
[英]Java regular expression to validate numeric comma separated number and hyphen
[英]want a regular expression which will validate java variables with only one comma in between
我有一个正则表达式,用于验证字符串。
String s = SELECT column1,column2 GROUPBY column3 AS AliasName
regex = ^SELECT\s+[[a-zA-Z_$][a-zA-Z_$0-9]*,*]+[a-zA-Z_$][a-zA-Z_$0-9]?\s+GROUPBY\s+[[a-zA-Z_$][a-zA-Z_$0-9]*,*]+[a-zA-Z_$][a-zA-Z_$0-9]?\s+AS\s+[a-zA-Z_$][a-zA-Z_$0-9]*$
该验证有效,但是我需要更改正则表达式的帮助,因此它仅允许在每个Java变量之间使用逗号,并且不允许在第一列之前使用逗号。
例如,以下字符串不匹配,但可以匹配:
String s2 = SELECT ,column1,,column2 GROUPBY column3 AS AliasName
另外,我想更改它,以便SELECT
, GROUPBY
和AS
可以大写或小写。 我知道我可以交替使用|
但我希望采用其他方式。
像这样尝试:
(?i)^SELECT ([a-zA-Z_$][a-zA-Z_$0-9]+,)*([a-zA-Z_$][a-zA-Z_$0-9]+) (?:(GROUPBY) ([a-zA-Z_$][a-zA-Z_$0-9]+,)*([a-zA-Z_$][a-zA-Z_$0-9]+))?(?: AS ([a-zA-Z_$][a-zA-Z_$0-9]+))?
允许小写字母的最简单方法是使用内联修饰符(?i)
将正则表达式切换为不区分大小写。
PS:您的查询看起来不完整。 没有FROM
部分? PPS:您可能要研究不同的解决方案,因为正则表达式不能完全匹配和验证SQL语法。 您可以尝试标记查询 。 或者,甚至更好的是,使用解析器。 ANTLR有一些SQL语法 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.