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*