这在正则表达式中是什么意思
本文关键字:是什么 意思 正则表达式 | 更新日期: 2023-09-27 18:31:48
前几天我正在浏览有关URL重写的文章,我看到了这个表达式
<conditions>
<add input="{HTTP_HOST}" type=”Pattern” pattern="^([^.]+)'.mysite'.com$"> <!-- condition back-reference is captured here -->
</conditions>
我都明白,除了表达([^.]+)
是什么意思。我明白^意味着开始和.除了整个表达是什么意思之外,还有什么意思?
[^.]
的意思是"除了一个点之外的任何字符"。 (在字符类中,开头的^
表示"不是"。 点在字符类中除了"点"之外没有任何意义。
+
的意思是"一个或多个"。
括号将里面的东西分组,并告诉正则表达式引擎记住它在那里找到的内容。
最终结果是,整个表达式将匹配"sub.mysite.com"之类的内容,括号部分将匹配"sub"并记住它(大概是为了将来使用)。
一个或多个
未.
字符的贪婪捕获匹配(字面意思;在方括号内,.
真正意味着.
,而不是"任何字符")。
方
括号内的^
不是输入锚点的开头,而是反转字符类匹配的内容。所以[^x]
会匹配"除x
以外的任何东西"。
因此,[^.]
匹配除点之外的所有内容的一个或多个匹配项。
[^.]+
表示:除点以外的任何字符,一次或多次,重复。
"[...]"定义一组字符,其中任何一个都满足。
括号开头的"^"表示将排除字符集,并包含所有其他字符。^ 在这里不算作字符。
"+"表示它必须至少出现一次,并且可以出现多次
在这种情况下,"." 表示一个简单的点
方括号表示"任何括起来的字符"。 插入符号作为方括号内的第一个字符将其含义更改为"以下字符中没有一个",句点将失去其特殊含义。 加号表示"一个或多个先前单元",括号表示"将内容视为单个单元"。
因此,([^.]+)
的意思是"一个或多个不是句点的字符,被视为单个单元"。