假設我有一個這樣的字符串:abc def ghi jkl
(爲簡單起見,我在末尾放了一個空格,但它對我來說並不重要),我想捕獲它的「塊「如下:使用正則表達式標記字符串
abc
def
ghi
jkl
當且僅當字符串中有1-4個」塊「。我已經試過以下的正則表達式:
^([^ ]+){1,4}$
在Regex101.com但只抓住了最後一次出現。發出警告:
重複捕獲組將只捕獲最後一次迭代。如果你對數據不感興趣,可以在重複組周圍設置一個捕獲組來捕獲所有迭代或使用非捕獲組
如何更正正則表達式以實現我的目標?
這等1個或多個字符是一個XY的問題。用空格拆分/分解字符串,並檢查結果數組是否包含4個非空元素。但是,可以使用PCRE而不是POSIX來檢查和*匹配多個隨後出現的*(不捕獲)。 –
好的,所以我可以使用編程語言「手動」,而不涉及正則表達式,但有沒有更自動的解決方案?事實上,它旨在成爲更復雜表達的一部分。 PCRE對我來說是可以接受的。 – mzzz
如果您的可執行文件只允許訪問捕獲組值,那麼沒有適合您的解決方案。 –