java - 正则表达式匹配至少包含一位数字和一个特定长度的数字的字符串

标签 java regex

嗯,有数百万个具有类似主题的问题 - 我有其中的每一个回复,但没有成功:(

我有一组网址:

https://test-gateway.com/newUserCustomerOrder
https://test-gateway.com/newUserCustomerOrder/5e8f39ee5bd0920012e40a13
https://test-gateway.com/newUserCustomerOrder/5e8f39f65bd0920012e40a14
https://test-gateway.com/newUserCustomerOrder/5e8f3a045bd0920012e40a15
https://test-gateway.com/newUserCustomerOrder/5e8fd4755bd0920012e411fd
https://test-gateway.com/newUserCustomerOrder/5e8fd4e35bd0920012e4120b
https://test-gateway.com/newUserCustomerOrder/5e8fd4eb5bd0920012e4120d

我想找到orderIds(对于特定场景,它们将出现在该网址内的随机位置) 正则表达式如:

(?=.*\d)[a-zA-Z\d]{18,24}

不幸的是,同时捕获了 ID 5e8f39ee5bd0920012e40a13 和适配器名称 newUserCustomerOrder 我希望能够捕获长度在 {18,24} 范围内的每个字符串,其中至少包含一位数字。

有人可以给我提示如何让它工作吗?

最佳答案

不是向前查找 .*\d,而是向前查找后跟 \d单词字符,从而排除 newUserCustomerOrder/ 因为它包含斜杠:

(?=\w*\d)[a-zA-Z\d]{18,24}

https://regex101.com/r/GLrhNd/1

关于java - 正则表达式匹配至少包含一位数字和一个特定长度的数字的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61136051/

相关文章:

java - 在 List 的每个索引上创建 ArrayList

java - Weblogic Spring 安全 "A universal match pattern ('/* *') defined before other patterns"

jQuery在输入字段输入6个字符后显示div

python - 忽略 Black 格式化程序的 pyproject.toml 文件中的 Django 迁移

java - Android - 将编辑文本格式化为 xxx.xx 的正则表达式

javascript - AngularJs 输入文本框只允许大于零的值

regex - 使用 bash 脚本逐行读取文件

java - 如何使用 JavaFX 实现像球杆一样的图像,当您拖动鼠标时,该图像会围绕一个点旋转

java - volatile 和 static 关键字有什么区别?

java - JTable 显示某一日期下的事件列表