匹配表别名

时间:2015-04-08 12:54:47

标签: regex alias

我想创建一个使用别名识别表的正则表达式。我可以同时拥有

table_name AS alias
table_name alias

我试过这个

^(.*?)\s*(?:as|\s)\s*(.*?)$

它实际上有效,除了别名以' as'作为'。

的情况。

工作演示:https://regex101.com/r/jX3tK0/1https://regex101.com/r/wU0dF8/1

不工作演示:https://regex101.com/r/tY8bK8/1

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以在\b

之后要求字边界(as
^(.*?)\s*(?:as\b|\s)\s*(.*?)$

https://regex101.com/r/tY8bK8/2

或者,您可以执行this

^(.*?)(?:(\s+as)?\s)\s*(.*?)$

答案 1 :(得分:1)

这是因为你选择的基数。以下内容应符合您的需求:

^(.*?)\s+(?:as\s+)?(.*?)$

Regular expression visualization

Debuggex Demo