跟进existing question,如果我输入以下字符串,这个正则表达式不起作用。
test1/test2/test3:test4/test5/test/1234/abc1232323:test7/test8
。它导致abc1232323,但是,我希望它告诉我它在4“/”之后没有找到匹配的字符串(因为1234不符合标准)
我希望正则表达式为马赫ABC123 patern(精确长度)后精确的4斜杠。我会apreciate @ergonaut帮助
答案 0 :(得分:1)
如果您想 NOT 在test1/test2/test3:test4/test5/test/1234/abc1232323:test7/test8
中找到匹配项,因为您需要匹配未跟数位的3位数字,请使用
^(?:[^/]*/){4}([A-Za-z]{3}\d{3})(?!\d)
请参阅regex demo
在Java中:
String reg = "^(?:[^/]*/){4}([A-Za-z]{3}\\d{3})(?!\\d)";
如果3个数字((?!\d)
)后面跟着另一个数字,则\d{3}
是一个未通过匹配的否定前瞻。 如果您不需要此限制,请删除此前瞻。您可以在在线正则表达式演示中轻松查看效果。