我正在抓取某些网站的数据,我希望从特定网址中提取数据。其中一个例子就是以*devicehelp.optus.com.au/web/*
为例。 PFB我的正则表达式 -
/[^]*devicehelp\.optus\.com\.au\/web\/[^.]*/
这个正则表达式并没有给我完美匹配我想要的东西。有人可以让我知道我在这里失踪了什么吗?
测试网址 -
*devicehelp.optus.com.au/web/*
http://www.top.abc.something.optus.devicehelp.optus.com.au/web/web/web/
当我在http://regexr.com/上测试时,此正则表达式有效但https://regex101.com/上没有
答案 0 :(得分:1)
在大多数正则表达式中,[^]
是一个无效的正则表达式构造,而在您测试的网站(regexr.com)上,这将被解析为任何字符(因为正则表达式正则表达式味道是JavaScript)。
要匹配任何字符,但换行符号为零次或多次,您可以使用.*
。
.*\bdevicehelp\.optus\.com\.au\/web\/.*
\b
是一个单词边界,以便将devicehelp
作为整个单词匹配(如果您不打算将其作为整个单词匹配,则可以将其删除)。应该转义点以匹配文字点。