V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mlgm2020
V2EX  ›  问与答

麻烦大佬帮我看个正则表达式,半天没研究懂。。

  •  
  •   mlgm2020 · 2020-12-19 00:49:16 +08:00 · 1038 次点击
    这是一个创建于 1231 天前的主题,其中的信息可能已经有所发展或是发生改变。
    (?<subdomain>.*)xxx\.com$

    这是 nginx 的域名配置,可以匹配 xxx.com 还有 *.xxx.com; 并且 subdomain 可以当做变量使用。

    (?<subdomain>.*) 这一块对着正则表达式文档看了半天也没搞清楚。。
    <>尖括号里面的是变量名吗? 好像也没找到这个语法啊
    ? 问号不是匹配之前的表达式吗? 这个?前面没有其他表达式吧。。
    反正现在是一脸懵逼,完全看不懂了
    5 条回复    2020-12-19 11:23:00 +08:00
    flavoury
        1
    flavoury  
       2020-12-19 01:03:27 +08:00
    ?<subdomain>
    这个是正则的分组,给你贴个 regex101 的结果:
    Named Capture Group subdomain (?<subdomain>.*)
    意思是如果这个分组匹配了,那这个分组取名叫做 subdomain
    正常我们使用正则匹配分组都是叫 1,2,其实也可以自己给它命名,这就是命名方式
    liukrystal
        2
    liukrystal  
       2020-12-19 01:06:10 +08:00 via iPhone
    LS 表述正确,这是正则表达式分组,可以用 groupdict 提取分组字典
    mlgm2020
        3
    mlgm2020  
    OP
       2020-12-19 01:32:17 +08:00
    @flavoury 多谢大佬,搜索“正则分组”找到相关内容了,之前看的文档不全。。。
    具名组匹配允许为每一个组匹配指定一个名字。
    具名组匹配”在圆括号内部,模式的头部添加“问号 + 尖括号 + 组名”(?<year>),然后就可以在 exec 方法返回结果的 groups 属性上引用该组名。
    kidlj
        4
    kidlj  
       2020-12-19 01:40:39 +08:00 via iPhone
    $ man 3 pcresyntax
    mauve
        5
    mauve  
       2020-12-19 11:23:00 +08:00 via iPhone
    https://www.runoob.com/regexp/regexp-syntax.html
    晦涩难懂我还是看菜鸟教程吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2123 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:50 · PVG 18:50 · LAX 03:50 · JFK 06:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.