Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 语法-正则表达式_Regex - Fatal编程技术网

Regex 语法-正则表达式

Regex 语法-正则表达式,regex,Regex,我试图构造一个正则表达式,使a的总数可以被3整除,无论它们是如何分布的。阿巴巴巴。这就是我想到的: b*ab*ab* 现在,有人告诉我我可以这样做 (b*ab*ab*)* 为什么我需要把它包起来,为什么需要外面的kleene星 外部kleene不会分布在括号内的所有a和b中吗?如果是这样,那么双kleene是什么意思?外部*将整个序列重复零次或多次 换句话说,匹配b*ab*ab*外部*的零个或多个子字符串将整个序列重复零次或多次 换句话说,匹配b*ab*ab*的零个或多个子字符串要使“a”的

我试图构造一个正则表达式,使a的总数可以被3整除,无论它们是如何分布的。阿巴巴巴。这就是我想到的:

b*ab*ab*
现在,有人告诉我我可以这样做

(b*ab*ab*)*
为什么我需要把它包起来,为什么需要外面的kleene星

外部kleene不会分布在括号内的所有a和b中吗?如果是这样,那么双kleene是什么意思?

外部*将整个序列重复零次或多次

换句话说,匹配b*ab*ab*

外部*的零个或多个子字符串将整个序列重复零次或多次


换句话说,匹配b*ab*ab*

的零个或多个子字符串要使“a”的数目可被三整除,表达式中需要三个“a”。所以正确的表达是:

b*ab*ab*ab**


这个短语是“A”三次,中间可能有B。最后一个星号表示根据需要重复整个括号内的表达式。

要使“a”的数目可被3整除,表达式中需要3个“a”。所以正确的表达是:

b*ab*ab*ab**


这个短语是“A”三次,中间可能有B。最后一颗星表示根据需要重复整个括号内的表达式。

您的表达式是错误的。aa匹配正则表达式,2不能被整除3@AurelioDeRosa,spatulamania的答案绝对正确,而你的答案完全错误。这里有一个小的Python演示,它不使用任何非正则表达式的东西,比如反向引用或递归模式:您的表达式是错误的。aa匹配正则表达式,2不能被整除3@AurelioDeRosa,spatulamania的答案绝对正确,而你的答案完全错误。这里有一个小型Python演示,它不使用任何非正则表达式的东西,如反向引用或递归模式:+1,但您需要添加“^”和$anchors来实现这一点:^b*ab*ab*ab**$ridgerunner:anchors在这里是不相关的,因为重点显然是构造一种正式语言,而不是在编程中应用正则表达式。还要注意的是,在理论上的CS正则表达式只需要替换项、Kleene星和分组来表示所有可能的正则语言。@Joey-是的,我不知道理论上的CS。但我必须分别坚持正则表达式:b*ab*ab*ab**错误地匹配aaaa,而aaaa肯定有一个不可被3整除的数。ridgerunner,在这里它不是。正则表达式是通过枚举语言的所有匹配词来描述语言的工具。这里暗示了锚,因为理论上CS正则表达式不适用于子字符串。在这种情况下,它们不是编程工具。+1但您需要添加“^”和“$锚定”来实现这一点:^b*ab*ab*ab**$ridgerunner:锚定在这里是不相关的,因为重点显然是构造一种正式语言,而不是在编程中应用正则表达式。还要注意的是,在理论上的CS正则表达式只需要替换项、Kleene星和分组来表示所有可能的正则语言。@Joey-是的,我不知道理论上的CS。但我必须分别坚持正则表达式:b*ab*ab*ab**错误地匹配aaaa,而aaaa肯定有一个不可被3整除的数。ridgerunner,在这里它不是。正则表达式是通过枚举语言的所有匹配词来描述语言的工具。这里暗示了锚,因为理论上CS正则表达式不适用于子字符串。在这种情况下,它们不是编程工具。