繁体   English   中英

Javascript正则表达式-没有尾随空格时如何匹配

[英]Javascript regex - how to match when no trailing spaces

在此正则表达式中,我尝试从SQL select语句中提取表列表。 如果该语句以表名结尾,则没有匹配项,但有一个例外,它可以正常工作。 例如:

鉴于他正则表达式:

(?:from|join)\s+(.*?)(?:\)|\s+(?:where|on|inner|outer|full|left|right|join|\s*$))

并给出以下字符串:

"select xxxx  from table1 t1, table2, table3 t3 "  (note the last space)

匹配为:

"table1 t1, table2, table3 t3"   

但鉴于此字符串:

"select xxxx  from table1 t1, table2, table3 t3"  (without last space)

没有比赛。 如何使这项工作?

正则表达式不是很好,因为它比看起来复杂得多:

  • 如果他们使用LEFT / RIGHT INNER / OUTER / CROSS / MERGE / NATURAL连接而不是a,b语法怎么办? 无论如何,应避免使用a,b语法。
  • 嵌套查询呢?
  • 如果没有表怎么办(选择一个常数)
  • 换行符和其他空白格式呢?
  • 别名?

您可以做的是一个SQL解析器,并且有一个很好的Hrer

在这篇文章中查看更多答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM