有一点RegEx大脑放屁,如果有人有空的话,可以用某种帮助吗?
我想在域名后面找到URL的所有单词。
例如:
http://www.bbc.co.uk/programmes/b08y26qp
应该返回:programmes
,b08y26qp
我到目前为止:
[a-z][a-z0-9]*
但我如何才有资格在http://www.bbc.co.uk/
之后开始返回单词?
非常感谢!
答案 0 :(得分:1)
您只需将http://www.bbc.co.uk/
作为字符串文字添加到正则表达式中。您还应该使用字符串start anchor(^
)来减少失败匹配的工作(^http:\/\/www\.bbc\.co\.uk\/
)
您可以转到https://regex101.com/,只需在每个(非灰色)突出显示的字符前添加\
,直到整个正则表达式只有灰色高光。
在Java中,只需让Pattern.quote(string)
和Matcher.quoteReplacement(string)
为您进行转义。
当然,如果你有一种编程语言,那么这样的东西会更好。 urlString.substring("http://www.bbc.co.uk/".length()+1).split("/")
答案 1 :(得分:1)
使用$
将正则表达式绑定到行尾。在这种情况下,开头的事情确实很重要。
使用()
您可以指定群组。这样可以轻松检索结果。
此正则表达式适用于http://www.bbc.co.uk/programmes/b08y26qp
([A-Za-z0-9]+)\/([A-Za-z0-9]+)$
结果:
第1组:计划
第2组:b08y26qp
在正则表达式101中查看此示例:https://regex101.com/r/YkUHk5/1/