首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式域将不会获得域.uk co.uk。

正则表达式域将不会获得域.uk co.uk。
EN

Stack Overflow用户
提问于 2020-02-12 16:23:19
回答 2查看 234关注 0票数 0

对于第一组,我得到域名。但是组2不会获得域的UK

下面是regex:https://regex101.com/r/Svg7KY/1中的代码

代码语言:javascript
运行
复制
First try:   /^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^.]+)((?:[.,]\w+))/gm
Second try: /^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^.]+)([,.](?=[^.,]*$)\w+)/gm

nu.co.uk www.nu.co.uk http://www.nu.co.uk https://www.nu.co.uk

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-12 16:35:10

如果要在第二个捕获组中捕获uk,可以重复0次或多次,匹配一个点,后面跟着1+单词字符。

然后匹配一个点并捕获第1组中的最后一个单词字符。

代码语言:javascript
运行
复制
^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^.]+)(?:[.,]\w+)*\.(\w+)

关于最后一部分(?:[.,]\w+)*\.(\w+)

  • (?:非捕获群
    • [.,]\w+匹配点或逗号和1+单词字符

  • )*关闭组和重复0+时间
  • \.匹配一个点
  • (\w+)捕获组2,匹配1+单词字符

Regex演示

票数 0
EN

Stack Overflow用户

发布于 2020-02-12 16:32:14

我看了你提供的链接中的正则表达式。它与"uk“不匹配的原因是,这些示例比其他示例出现的\.\w+事件更多。您只需在最后一个组中添加一个量词即可:

^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^.]+)((?:[.,]\w+)){1,2}

另外,在最后一个组的字符类中是否需要逗号?如果没有,可以将正则表达式简化为:

^(?:https?:\/\/)?(?:[^@\n]+@)?(?:\w+)(?:\.\w+)+

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60192843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档