匹配 table 别名
Matching table alias
我想创建一个识别 table 带有别名的正则表达式。我可以同时拥有
table_name AS alias
table_name alias
我试过这个
^(.*?)\s*(?:as|\s)\s*(.*?)$
它确实有效,除了别名以 'as' 开头的情况。
工作演示:https://regex101.com/r/jX3tK0/1, https://regex101.com/r/wU0dF8/1
演示无效:https://regex101.com/r/tY8bK8/1
我该如何解决这个问题?
您可以在 as
:
之后要求一个单词边界 (\b
)
^(.*?)\s*(?:as\b|\s)\s*(.*?)$
https://regex101.com/r/tY8bK8/2
或者,您可以 this:
^(.*?)(?:(\s+as)?\s)\s*(.*?)$
这是因为您选择的基数。以下应该适合您的需要:
^(.*?)\s+(?:as\s+)?(.*?)$
我想创建一个识别 table 带有别名的正则表达式。我可以同时拥有
table_name AS alias
table_name alias
我试过这个
^(.*?)\s*(?:as|\s)\s*(.*?)$
它确实有效,除了别名以 'as' 开头的情况。
工作演示:https://regex101.com/r/jX3tK0/1, https://regex101.com/r/wU0dF8/1
演示无效:https://regex101.com/r/tY8bK8/1
我该如何解决这个问题?
您可以在 as
:
\b
)
^(.*?)\s*(?:as\b|\s)\s*(.*?)$
https://regex101.com/r/tY8bK8/2
或者,您可以 this:
^(.*?)(?:(\s+as)?\s)\s*(.*?)$
这是因为您选择的基数。以下应该适合您的需要:
^(.*?)\s+(?:as\s+)?(.*?)$