Regex 如何在这个正则表达式中有两个通配符?

Regex 如何在这个正则表达式中有两个通配符?,regex,Regex,尝试获取以下正则表达式:*不是通配符,它们表示前面的字符重复0、1或多次 点可以是任何字符 更新: 你可以试试这个 ^xx\.[a-z]+\.aaa\.bbb\.?[a-z]* 例如,您可以对其进行测试 [a-z]是字符组,您可以在其中定义允许的字符(或使用[^a-z]不允许的字符)。因此,如果您只查找小写字母,则可以使用[a-z] +表示它必须至少在那里运行一次 靠近末尾的\?表示可以有点,也可以没有点 开头的^表示在字符串开头匹配 一个很好的教程(对于Perl,但至少基本原理几乎在所有地方

尝试获取以下正则表达式:
*
不是通配符,它们表示前面的字符重复0、1或多次

点可以是任何字符

更新:

你可以试试这个

^xx\.[a-z]+\.aaa\.bbb\.?[a-z]*
例如,您可以对其进行测试

[a-z]
是字符组,您可以在其中定义允许的字符(或使用
[^a-z]
不允许的字符)。因此,如果您只查找小写字母,则可以使用
[a-z]

+
表示它必须至少在那里运行一次

靠近末尾的
\?
表示可以有点,也可以没有点

开头的
^
表示在字符串开头匹配


一个很好的教程(对于Perl,但至少基本原理几乎在所有地方都是一样的)是

*
不是通配符,它们意味着前面的字符重复0、1或多次

点可以是任何字符

更新:

你可以试试这个

^xx\.[a-z]+\.aaa\.bbb\.?[a-z]*
例如,您可以对其进行测试

[a-z]
是字符组,您可以在其中定义允许的字符(或使用
[^a-z]
不允许的字符)。因此,如果您只查找小写字母,则可以使用
[a-z]

+
表示它必须至少在那里运行一次

靠近末尾的
\?
表示可以有点,也可以没有点

开头的
^
表示在字符串开头匹配


一个很好的教程(对于Perl,但至少基本原理几乎在所有地方都是一样的)是

您误解了正则表达式中的
*
概念

我想你要找的是:

xx\..*\.aaa\.bbb.*
问题是:

  • 不是真正的
    。它表示任何字符,因此如果要匹配
    ,必须将其转义:
    \。
  • *
    意味着前面的字符将被匹配0次或多次,那么如何模拟您正在寻找的通配符呢?使用
    *
    。它将匹配任何字符0次或多次
如果您想精确匹配整个字符串,并且不匹配任何与模式匹配的子字符串,则必须在开头包含
^
,在结尾包含
$
,这样您的正则表达式将是:

^xx\..*\.aaa\.bbb.*$

您误解了正则表达式中的
*
概念

我想你要找的是:

xx\..*\.aaa\.bbb.*
问题是:

  • 不是真正的
    。它表示任何字符,因此如果要匹配
    ,必须将其转义:
    \。
  • *
    意味着前面的字符将被匹配0次或多次,那么如何模拟您正在寻找的通配符呢?使用
    *
    。它将匹配任何字符0次或多次
如果您想精确匹配整个字符串,并且不匹配任何与模式匹配的子字符串,则必须在开头包含
^
,在结尾包含
$
,这样您的正则表达式将是:

^xx\..*\.aaa\.bbb.*$

假设你说*是“正常意义上”的通配符,并且你的字符串不是对正则表达式的尝试,我会说,
xx\..+\.aaa\.bbb.+
是你要找的。

假设你说*是“正常意义上”的通配符,并且你的字符串不是对正则表达式的尝试,我想说,
xx\..+\.aaa\.bbb.+
就是你想要的。

试试这个表达:

^xx\.[^\.]+\.aaa\.bbb.*
尝试以下表达式:

^xx\.[^\.]+\.aaa\.bbb.*
您所谓的“通配符——而不是正则表达式语法”来自。这是一种模式匹配技术,在60年代末的第一个Unix版本中得到普及。最初,它是一个单独的程序——称为glob——产生的结果可以通过管道传输到其他程序。现在bash、MS-Dos和几乎所有shell都内置了此功能。在globbing中,
*
通常意味着匹配任意字符,任意次数

regex语法不同。regex中的
*
习惯用法类似于globbing中的
*
,但并不完全相同。正常地如果希望
*
在正则表达式中匹配任意字符、任意次数,通常必须设置单行模式(在Ruby中称为多行)。

您所谓的“通配符——而不是正则表达式语法”来自。这是一种模式匹配技术,在60年代末的第一个Unix版本中得到普及。最初,它是一个单独的程序——称为glob——产生的结果可以通过管道传输到其他程序。现在bash、MS-Dos和几乎所有shell都内置了此功能。在globbing中,
*
通常意味着匹配任意字符,任意次数


regex语法不同。regex中的
*
习惯用法类似于globbing中的
*
,但并不完全相同。正常地如果希望
*
在正则表达式中匹配任意字符、任意次数,通常必须设置单行模式(在Ruby中称为多行)。

可以给我一些需要匹配的字符串示例吗?您应该指定在编写
*
时是否可以包含
字符,或者通常允许使用哪些字符…您能给我一些需要匹配的示例字符串吗?您应该指定在编写
*
时是否可以包含
字符,或者通常允许使用哪些字符…我相当确定他试图匹配一个字符串,该字符串符合他的模式不是一个合适的正则表达式的模式,但他使用星号作为通配符。我相当确定他试图匹配一个字符串,该字符串符合他的模式不是一个合适的正则表达式的模式,但他使用星号作为通配符。啊,你认为
xx.*.aaa.bbb*