我在Java上尝试以下代码:
String test = "http://asda.aasd.sd.google.com/asdasdawrqwfqwfqwfqwf";
String regex = "[http://]{0,1}([a-zA-Z]*.)*\\.google\\.com/[-a-zA-Z/_.?&=]*";
System.out.println(test.matches(regex));
Run Code Online (Sandbox Code Playgroud)
它确实工作了几分钟(之后我杀了VM)没有结果.谁能帮我?
顺便说一句:您将来会建议我如何加快weblink-testng regex的速度?
[http://]是一个字符类,表示集合中的任何一个字符.
如果必须从中开始,请将这些特定方括号保留为关闭http://.如果它是可选的,您可以使用(http://)?.
一个显而易见的问题是你正在寻找序列([a-zA-Z]+.)*\\.google- 由于裸露意味着"任何角色"而不是你想要的文字时期,这将会进行大量的回溯..
但是,即使你与你有什么替代它的意思,([a-zA-Z]+\\.)*\\.google你仍然有一个问题-那么这将需要两个.之前的字符google.你应该尝试:
String regex = "(http://)?([a-zA-Z]+\\.)*google\\.com/[-a-zA-Z/_.?&=]*";
Run Code Online (Sandbox Code Playgroud)
这对我来说立即回归true.
请记住,这目前需要/在最后google.com.如果这是一个问题,这是一个小修复,但我已经把它留在那里,因为你在原来的正则表达式.
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |