2016-01-26 38 views
1

我有許多MySQL查詢使用「AS」和相同的列名稱作爲別名。找到代碼中重複單詞的正則表達式

例子:

`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的文本只是相同的文本。

有什麼辦法可以做到這一點?

回答

4

使用反向引用

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

術語\1的意思是 「什麼是在第1組拍攝」(至9工作組爲1)。