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
很高兴帮助,请考虑接受答案。 –