Regex 星点是如何工作的?

Regex 星点是如何工作的?,regex,Regex,我已经理解*表示任何字符的零个或多个,但是 有人能解释一下在接下来的工作中,*是如何匹配的吗 .*([a-m/]*).* .*([a-m/]+).* .*?([a-m/]*).* 点表示任何东西都可以到这里,而星表示至少0次 因此,*接受任何字符序列,包括空字符串。*表示“任何字符,任何重复次数”。在示例中,.*的功能是确保包含的表达式可以包含任何内容(或不包含任何内容)。点代表任意字符,星号表示前面的字符可以重复任意次数(或根本不重复)。每种情况都不同: *([a-m\/]*)。 第一个

我已经理解
*
表示任何字符的零个或多个,但是 有人能解释一下在接下来的工作中,
*
是如何匹配的吗

.*([a-m/]*).*

.*([a-m/]+).*

.*?([a-m/]*).*

点表示任何东西都可以到这里,而星表示至少0次
因此,
*
接受任何字符序列,包括空字符串。

*表示“任何字符,任何重复次数”。

在示例中,.*的功能是确保包含的表达式可以包含任何内容(或不包含任何内容)。点代表任意字符,星号表示前面的字符可以重复任意次数(或根本不重复)。

每种情况都不同:

*([a-m\/]*)。

第一个
*
可能会匹配整个字符串,因为
[a-m/]
不需要出现,而第一个
*
是贪婪的,并且是第一个

*([a-m\/]+).

第一个
*
将匹配整个字符串,直到匹配
[a-m/]
的最后一个字符,因为只需要一个字符,而第一个
*
是贪婪的,并且排在第一位

*?([a-m\/]*)。


第一个
*?
将匹配字符串到匹配
[a-m/]
的第一个字符,因为
*?
不是贪婪的,那么
[a-m/]*
将匹配它所能匹配的,因为
*
是贪婪的,然后最后一个
*
将匹配字符串的其余部分。

在Regex中,
指任何字符,可以是数字、字母字符或任何其他特殊字符
*
表示零次或多次。这很简单——任何符号,出现零次或多次——但下面有很多细微差别。更重要的是,它是正则表达式中非常核心的概念。现在就出去看看正则表达式的背景资料。那样你会走得更远更快。你是怎么做到的?你回答的是“不是一个真正的问题”。@There is nothing wecando:“作为一个非真正的问题结束……2012年10月2日9:38”。Ionut回答了eariler(当这还是一个真正的问题时:)。第三个案例中有一个错误。正如您自己编写的
[a-m/]
后面跟着一个
*
,而不是您后来考虑的
+
。因此,根据您在第一个案例中所说的话,“
[a-m/]
不需要在场”。那么哪一个优先呢?第三个例子,最后一个
*
不是贪婪的,因为没有贪婪的选项,对吧?