[英]RegEx - character not before match
我了解RegEx的概念,但这或多或少是我第一次真正尝试自己编写一些东西。
作为项目的一部分,我试图解析出与某个域匹配的字符串(实际上是一个域数组,但让我们保持简单)。
首先,我从以下开始:
url.match('www.example.com')
但是我注意到我也得到了这样的输入:
http://www.someothersite.com/page?ref=http://www.example.com
这些行当然会与www.example.com
匹配,但我希望排除它们。 因此,我一直在考虑以下方面:只匹配包含www.example.com
行,而不匹配?
字符。 这是我想出的:
var reg = new RegExp("[^\\?]*" + url + "(\\.*)", "gi");
但是,这似乎行不通,因为我担心自己在此问题上所掌握的知识很少,所以任何建议都将不胜感激。
编辑:一些澄清。
example.com
, www.example.org
, www.somethirdsite.com
和web.example.net
均应有效),它们将存储在变量中。 http://www.someothersite.com/page?ref=https://www.example.com
和http://www.someothersite.com/page?ref=www.example.com
即,如果我的针头不是请求域的一部分,而是请求数据的一部分,则我不希望匹配。 编辑:这是任意域的修改后的正则表达式:
RegExp("(^|\\s)(https?://)?(\\w+\\.)?" + url, "gi");
这里的想法是,您只匹配带有一些空格字符的url,这使得它不可能出现在查询中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.