跟进existing question ,如果我输入以下字符串,则此正则表达式将不起作用。
test1/test2/test3:test4/test5/test/1234/abc1232323:test7/test8
。它的结果是 abc1232323,但是,我希望它告诉我在 4 个“/”之后没有找到匹配的字符串(因为 1234 不符合条件)
我希望正则表达式在精确的 4 个斜杠之后匹配 ABC123 模式(精确的长度)。我会感谢@ergonaut 的帮助
最佳答案
如果您不想在 test1/test2/test3:test4/test5/test/1234/abc1232323:test7/test8
中找到匹配项,因为您需要匹配后面不跟数字的 3 位数字,使用
^(?:[^/]*/){4}([A-Za-z]{3}\d{3})(?!\d)
在 Java 中:
String reg = "^(?:[^/]*/){4}([A-Za-z]{3}\\d{3})(?!\\d)";
(?!\d)
是一个负向先行,如果 3 个数字 (\d{3}
) 后面跟着另一个数字,则匹配失败。 如果您不需要该限制,请删除此前瞻。您可以在在线正则表达式演示中轻松查看效果。
关于java - 正则表达式匹配斜杠的精确数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34008685/