【问题标题】:Multiple occurrences of each capturing group in Javascript regex [duplicate]Javascript正则表达式中每个捕获组多次出现[重复]
【发布时间】:2015-07-24 03:00:22
【问题描述】:

我正在尝试获取 SQL 选择语句的表和别名,例如以下选择:

select * from table1 t1, table2, table3 t3, table4 where column = 1

应该返回两个捕获组,第一个是table1table2table3table4。第二个捕获组t1,null,t3和null。

我的尝试只返回每个捕获组的第一项:

from\s+([^ ,]+)\s*(\w+)*,

仅返回 table1t1。如何扩展正则表达式以检索所有出现的事件?

【问题讨论】:

  • 我看不出你作为 dup 提出的问题如何回答我的问题
  • @pgschr:你得到的解决方案也是匹配,然后用分隔符分割。所以它或多或少是重复的。

标签: javascript regex


【解决方案1】:

假设 str 是你的字符串

var tables = str.match(/from\s(.*)\swhere/)[1].split(/, /);

返回:

["table1 t1", "table2", "table3 t3", "table4"]

【讨论】:

  • 我需要将别名与表名相关联,例如 table3 和 t3,在您的正则表达式中我不能这样做
  • @pgschr 啊,这更容易。我会更新我的答案
猜你喜欢
  • 2019-04-25
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 2020-12-16
  • 2017-09-13
  • 2011-03-11
相关资源
最近更新 更多