如何删除“。”从匹配正则表达式?

时间:2021-01-26 15:45:48

标签: java regex

我有一个字符串:

"https://172.24.1.1:100/test"

我正在尝试使用正则表达式将字符串拆分为字符串数组: "\\W+"

我得到了结果:

[https, 172, 24, 1, 1, 100, test]

如何通过在那里添加一个点来更改正则表达式以创建这样的字符串数组:

[https, 172.24.1.1, 100, test]

2 个答案:

答案 0 :(得分:0)

对于这个特殊问题,我不会使用正则表达式。使用您拥有的规范 SELECT GET_LOCK('myNamedLock'); // Do your thing in the app, then SELECT RELEASE_LOCK('myNamedLock'); 实例化 URL 对象然后调用 URL 对象的 String 方法会更优雅(并提供更强大的验证)。

答案 1 :(得分:0)

这里测试用例的解决方案是不匹配任何非单词字符,如“。”包含在其中。您可以改为只匹配正斜杠或冒号。

它的正则表达式如下所示:

[:\/]+

注意反斜杠以转义正斜杠。 根据您的语言,您可能也必须转义反斜杠,因此它最终会成为

[:\\/]+

一般来说,我可能会按照 Andrew Edgar 在他的回答中建议的那样做,并将其设为 URL 对象