java - 正则表达式匹配斜杠的精确数量

标签 java regex

跟进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)

参见regex demo

在 Java 中:

String reg = "^(?:[^/]*/){4}([A-Za-z]{3}\\d{3})(?!\\d)";

(?!\d) 是一个负向先行,如果 3 个数字 (\d{3}) 后面跟着另一个数字,则匹配失败。 如果您不需要该限制,请删除此前瞻。您可以在在线正则表达式演示中轻松查看效果。

关于java - 正则表达式匹配斜杠的精确数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34008685/

相关文章:

python - 将 Python 正则表达式转换为 VisualBasic

java - 需要编写 Manager 和 Employee 类的代码。如何在不破坏封装的情况下使它们彼此为 "visible"?

regex - 如何使用正则表达式删除具有特定变量的特定行

java - 使用 AmazonSNSClient 发送短信时的授权

java - 将可绘制对象从另一个 Activity 布局应用到 ImageView

php - 处理前验证评级变量

javascript - 仅允许数字和数字之间的单个连字符

C# RegEx 在管道分隔文件中查找空单元格

java - Java解迷宫算法(递归)

java - 如何等到 JComponent 完全绘制完成?