2017-05-07 42 views
0

我有以下文字:正則表達式:子在另一個子

query([[ 
select * 
from ]]..s_Schema..[[Table 
where RowNumber = n_Counter 
]],{Counter = n_Counter}); 

我需要找到子串n_([[]],之間。

這樣的正則表達式:\(\[\[[.\r\n]+n_[.\r\n]+\]\],不起作用。

我的情況似乎是與此相反之一:Regular expressions: find string without substring

或者這樣:regex match substring unless another substring matches

+0

什麼是你真正想要匹配/查找,這裏是有也更換? –

+0

我相信你需要'(?s)\ [\ [(?:(?!\ [\ [)。)*?n _。*?\] \]',但我不知道你真的需要什麼最終獲得。 –

回答

1

字面上實現您的要求是:

查找:

\(.*\[\[.*?(n_\w+).*\]\] 

您當前的正則表達式有幾個問題,這也許是其脫穎而出的最多的是這樣的:

[.\r\n] 

這個角色不會做你的想法;這將匹配以下三件事之一:一個字面點,一個回車符或一個換行符。您嘗試匹配的查詢代碼將永遠不會與此匹配。

演示在這裏:

Regex101

0

做一個正則表達式找到這樣:

  • 打開Find對話框
  • 查找內容:\(\[\[\K.*(?=\]\],)
  • 檢查正則表達式
  • 檢查。匹配換行符
  • 點擊查找下一個

說明

  • \(\[\[\K開始匹配後[[
  • (?=\]\],)是一個前瞻,它只匹配,如果隨後]],
相關問題