在代码中查找重复单词的正则表达式

时间:2016-01-26 12:52:17

标签: regex

我有很多使用“AS”的MySQL查询和与别名相同的列名。

示例:

`table1`.`field112` AS `field112`,
`table1`.`field113` AS `field113`,
`table1`.`field114` AS `field114`,

所以,我想简单地替换它们:

`table1`.`field112`,
`table1`.`field113`,
`table1`.`field114`,

所以我尝试了这样的常规表达:

/(`\w+`) AS (`\w+`)/g

这解决了替换$ 1文本的问题。

然后我发现了这个:

`table1`.`field137` AS `aliased_field`,

使用正则表达式,此行转为:

`table1`.`field137`,

这会破坏查询,因此,当$ 1和$ 2只是相同的文本时,我需要更改正则表达式以选择所有文本。

有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:4)

使用反向引用

/(`\w+`) AS \1/g

术语\1表示“第1组中捕获的内容”(适用于第1组至第9组)。