java 包含随机数的特定URL的正则表达式[已关闭]

iecba09b  于 2023-03-06  发布在  Java
关注(0)|答案(2)|浏览(97)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

2天前关闭。
Improve this question
我试图Assert包含URL的字符串是我所期望的,但最后一部分是一个随机数。我确实研究了regex并尝试了很多模式,但我还没有找到正确的模式。
URL类似于以下内容:https://x.example.com/example/1234?w=1080&h=720&cb=??????????此部分始终相同:https://x.example.com/example/1234?w=1080&h=720&cb=??????????表示十个随机数字。
我可以删除第一部分,并Assert剩余部分是一个10位字符串,但我需要正则表达式来验证完整的URL。
这些示例应匹配:

https://x.example.com/example/1234?w=1080&h=720&cb=1234567890
https://x.example.com/example/1234?w=1080&h=720&cb=9876543210
https://x.example.com/example/1234?w=1080&h=720&cb=4321123489
https://x.example.com/example/1234?w=1080&h=720&cb=1265678673
https://x.example.com/example/1234?w=1080&h=720&cb=7899453773

我用这个代码验证它:

assertTrue("URL: " + result + " expected: " + expectedUrl, result.matches(expectedUrl));

result:我需要匹配的URL。
expectedUrl:正则表达式。

busg9geu

busg9geu1#

可以使用\d{10}匹配正则表达式中的10个连续数字。使用RegExp#test检查是否找到匹配项。

let re = new RegExp('^https://x.example.com/example/1234\\?w=1080&h=720&cb=\\d{10}$');
console.log(re.test('https://x.example.com/example/1234?w=1080&h=720&cb=1234567890'));
console.log(re.test('https://x.example.com/example/1234?w=1080&h=720&cb=9876543210'));
console.log(re.test('https://x.example.com/example/1234?w=1080&h=720&cb=4321123489'));
bxfogqkk

bxfogqkk2#

要匹配并捕获随机数字:

^(https:\/\/x\.example\.com\/example\/1234\?w=1080&h=720&cb=)(\d+)$

您需要转义所有特殊字符、斜线、句点和问号
参见此处:https://regexr.com/79eva

相关问题