2016-05-15 20 views
0

根據使用的開始引號,如何匹配結束報價(單或雙)?Java正則表達式:基於前一個字符的匹配字符

現在我有:

key.*?=["'].*?["'] 

但遺憾的是收盤報價是不依賴於開放一個,它不會對下面的示例工作:

key="foo'bar" 

我可以創建2子,但我認爲它不是最佳:

key.*?=(".*?"|'.*?') 

任何提示將不勝感激,比KS!

+0

您是否嘗試過捕捉在第一次報價一個組,並在最後使用一個後向引用? – Biffen

回答

1

您可以使用反向引用\n(如\1 - 第二爲第一個捕獲組,\2

所以,你的例子看起來像:

key.*?=(["']).*?\1