我有一个标签BEGIN
和END
的字符串,其中包含任何数字或字母A-Z 0-9
,没有空格。
我希望将标记与特定目标匹配。
例如,鉴于String
BEGIN11119991112AADFSFENDBEGINASSD12UHYEND
和目标999
,这将匹配
BEGIN11119991112AAdFSfEND
和不 BEGINASSD12UHYEND
我试过BEGIN.*999.*END
我认为需要前瞻来检查目标是否在结束标记之前。
答案 0 :(得分:4)
答案 1 :(得分:2)
你可以试试这个:
BEGIN(.*999.*?)END
匹配后,您就可以单独获得该号码。
如果你不想匹配那么:
BEGIN.*999.*?END
你几乎是正确的,只需要添加?
。
<强> DEMO 强>
答案 2 :(得分:1)
BEGIN((?:(?!BEGIN).)*999.*?)END
匹配BEGIN
后跟并捕获以下组:此非捕获组中的零个或多个:任何不匹配BEGIN
的字符;然后是999
,后跟零个或多个任何字符,直到第一个匹配,但不包括END
。