問題
假如你有一個包含一個或多個隨機的字符序列或詞由某個字符被分隔字符串之間的字符和轉義字符本身,可以說,一個單引號。不是分隔符的單引號會被反斜槓轉義。匹配逃脫分隔符
例如:
字符串
'字' '字的字' '字\' 單詞 ' '\' '\\' '\''
想要的捕捉
- '字'
- '逐字逐句'
- '字\' 字 '
- '\'
- '\\'
- '\''
本質必須捕獲非轉義單引號之間的每個字符序列。
困難捕獲#4和#5兩者都具有單引號定界符由反斜槓轉義。實際上,這應該只是單引號分隔符之間的反斜槓。
到目前爲止,我已經能夠捕獲除#6之外的所有東西。我用正則表達式如下:
'((\\'[^ \ s] | [^ '])*)'
我發現這相當奇怪,因爲我認爲這將捕捉每一個不包含單引號的單引號之間的字符序列,除了單引號後面跟非空白字符。所以我不知道爲什麼#6沒有被這個表達式捕獲。
我做了一個快速測試,但我不認爲這是正確的解決方案:http://regexr.com/3bmtc 。或者這個測試錯了嗎?如果我也避免了反斜槓本身,那麼你的解決方案就可以工作,這很有道理。 – Pascal
@帕斯卡爾:爲了更加清楚,我認爲你期望的結果是錯誤的。 (特別是第4項必須是'''') –
我認爲你是對的。我想我被隧道視線所困住了。感謝您解決這個問題。我會接受這個答案。 – Pascal