这在正则表达式中是什么意思

本文关键字:是什么 意思 正则表达式 | 更新日期: 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以外的任何东西"。

因此,[^.]匹配除点之外的所有内容的一个或多个匹配项。

[^.]+

表示:除点以外的任何字符,一次或多次,重复。

"[...]"定义一组字符,其中任何一个都满足。

括号开头的"^"表示将排除字符集,并包含所有其他字符。^ 在这里不算作字符。

"+"表示它必须至少出现一次,并且可以出现多次

在这种情况下,"." 表示一个简单的点

方括号表示"任何括起来的字符"。 插入符号作为方括号内的第一个字符将其含义更改为"以下字符中没有一个",句点将失去其特殊含义。 加号表示"一个或多个先前单元",括号表示"将内容视为单个单元"。

因此,([^.]+)的意思是"一个或多个不是句点的字符,被视为单个单元"。