1
簡單的正則表達式的問題..兩個單詞之間的正則表達式 - 或行尾?
我建立了一個非常基本的表達拉文兩個字之間:
BEGN: (.*?)DETAIL:
當這兩個詞的存在,工作正常,但在某些情況下沒有「DETAIL :「所以在這些情況下,我只想捕捉到文本的末尾。這是可能的單個表達式,還是我需要某種類型的條件語句?
簡單的正則表達式的問題..兩個單詞之間的正則表達式 - 或行尾?
我建立了一個非常基本的表達拉文兩個字之間:
BEGN: (.*?)DETAIL:
當這兩個詞的存在,工作正常,但在某些情況下沒有「DETAIL :「所以在這些情況下,我只想捕捉到文本的末尾。這是可能的單個表達式,還是我需要某種類型的條件語句?
如果尾隨分隔符可以是不存在,使用tempered greedy token或展開之一:
BEGN: ((?:(?!DETAIL:).)*)
查看一個regex demo
的(?:(?!DETAIL:).)*
匹配任何文本直到第一DETAIL:
。您可以在D
之前添加一個字邊界\b
,以便匹配DETAIL
這是一個完整的詞。
如果文本可以跨越多行,請不要忘記DOTALL修飾符。如果您使用的展開的版本,則不需要修改DOTALL:
BEGN: ([^D]*(?:D(?!ETAIL:)[^D]*)*)
輝煌。完美的作品,謝謝。 – Roger
很高興幫助,請考慮接受答案。 –