(?=.+?,*)[^,]+
有結果我得到和期待:任何事情之前和分隔符正則表達式後
「這,就是成功的」
結果:
- 這
- 是
- 成功
「也是成功的」
結果:
- 也是成功的
以下是錯誤車道
「這不是成功的」
結果:
- 這不是成功的
我只想匹配當且僅當分隔符是字符串中,前後分隔符之後任何事情。我嘗試了一下+.
。但是當分隔符如','出現時,要麼得到的結果包含所有內容,要麼完全沒有結果。
(?=.+?,*)[^,]+
有結果我得到和期待:任何事情之前和分隔符正則表達式後
「這,就是成功的」
結果:
「也是成功的」
結果:
以下是錯誤車道
「這不是成功的」
結果:
我只想匹配當且僅當分隔符是字符串中,前後分隔符之後任何事情。我嘗試了一下+.
。但是當分隔符如','出現時,要麼得到的結果包含所有內容,要麼完全沒有結果。
您可以使用此lookarounds基於正則表達式:
(?<=,)[^,]*|[^,]*(?=,)
(?<=,)
聲稱有在比賽前一個,
(?=,)
斷言還有就是比賽結束後,
[^,]*
匹配0或更多的a除了逗號紐約字符試試下面的正則表達式:
([^,]+)?,([^,]+)|([^,]+),([^,]+)?
測試在PHP 5.5。 (上面的正則表達式在PHP中效果很好,具有preg_match_all
函數)
至少在regexr.com上,我注意到了這個問題。 「單詞」不會返回匹配。 「word,test」返回整個字符串,而且我也不想在結果中使用分隔符。 「word,test,foo」返回2個匹配項:單詞,測試 - 爲什麼 – user99999991
我不知道是誰低估了你,但到目前爲止,這與我在C#代碼中的場景非常吻合。它的恥辱JavaScript不支持向後看,但它可能不適用於每個人。如果有人沒有通用解決方案,我會將其標記爲答案。謝謝! – user99999991
不知道爲什麼它被低估。也許是因爲我先用look-around而不要求正則表達式。 – anubhava
下面是一個捕獲組的版本:[',([^,] *)|([^,] *),'](https://regex101.com/r/lX1oR2/4),幾乎可以在任何地方工作。 –