我一直在努力思考 javascript 中正则表达式的使用(不是专家),但我一直无法解决这个问题。
这是我的 url 的模式:
https://www.prefix.site.com
和我当前的正则表达式:
/(?:(\w+)\.)?site\.com
我需要做的是捕获“.site”之前的前缀,但我不想包含“https://www” .', 鉴于两者都是 'www.'我的前缀可能存在也可能不存在。我的前缀的一个例子可以是一个环境,例如https://testing.site.com
上面正则表达式的问题是如果有一个“www.”如果没有我的前缀,那么它将捕获“www.”作为前缀,这不是我需要的。
我有点用负面回顾解决了它,但由于它在 javascript 中不可用,我无法使用它。
如有任何提示,我们将不胜感激!
最佳答案
在捕获组的最开始,您可以对 www.
进行否定前瞻,以确保捕获组仅在包含 www.
以外的内容时才会匹配:
((?!www\.)\b\w+\.)?site\.com
https://regex101.com/r/K8btgd/1
注意单词边界 \b
- 这是为了确保捕获组在非单词字符(如 /
或 之后开始。
),或者根本不匹配(以防止匹配 ww.site.com
,其中第三个 w
在它之前)
关于javascript - 捕获 url 前缀但排除 www 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53787267/