我目前正在试图找出如何在记事本++中使用Regex在SQL语句中查找表的所有列。
让我们来看看这个问题:
select
a.id,
a.id || a.name,
a.age,
b.id
From a,b
现在,我想检索使用正则表达式的所有列 - 查询本身要大得多的问题,我不想完成整个查询。
期望的结果是:
id
name
age
我已经通过
找到了答案(?<=a\.)(\S+)
我匹配所需的字符串,但Notepad ++仍然返回整行,而不仅仅是我需要的单词。
有人可以帮我吗?
答案 0 :(得分:1)
使用“?”可能“匹配非贪婪”寻找单词边界可以帮助吗?表达式看起来像这样(在最后一个括号中添加?):
(?<=a\.)(\S+?\b)
当我读到这个问题时,我才想到这个问题,并没有检查它的功能。
答案 1 :(得分:1)
您可以使用此两步方法在a.
之后提取值:
Find: \ba\.(\w+)|(?s:.)
Replace With: (?1$1\n:)
然后,您需要remove duplicate lines才能获得预期的结果。
<强>详情
\ba\.
- a.
子字符串作为整个单词(\w+)
- 第1组:一个或多个单词字符(将保留组值+将在替换模式中附加一个LF)|
- 或(?s:.)
- 任何字符(将被删除)。 (?1$1\n:)
替换表示将输出Group 1值,如果Group 1匹配,则结束LF符号的行将附加到结果,否则,将使用空字符串作为替换。