我不确定这RegEx匹配的是什么:
(a+b)^n(c+d)^m
我知道+
元字符意味着“前一个模式的一次或多次”。因此,a+
会匹配一个或多个a
,而a*
也会包含空字符串。
但我认为在这种情况下,RegEx意味着a or b to the nth time concatenated with c or d to the mth time
,所以它匹配这样的字符串:
aaaacc (n=4, m=2)
bbbbbdddd (n=5, m=4)
aaaddddd (n=3, m=5)
bc (n=1, m=1)
aaaaaaaaaaaaccccc (n=12, m=5)
...
这是对的吗?如果不是,那么任何人都可以提供此RegEx 匹配的示例吗?
答案 0 :(得分:0)
如果错误地使用^
,它看起来不像有效的正则表达式^应该像[^ a]一样在[]之内,或者在正则表达式的最开头。 +仅表示出现一个或多个字符。
如果^ n表示可以重复n次,那么这些就是匹配:
aaaaaabccccccccd, aaaaaabaaaaaabaaaaaabccccccccdccccccccd
答案 1 :(得分:0)
显然(a+b)^n(c+d)^m
表示“n
个无槽 和 b 的插槽,后跟m
个无槽位 c 和 d 的“
e.g。 (a+b)^10(c+d)^5
的一个示例是:aaaababbbadcccd
答案 2 :(得分:0)
如果您使用带有'm'选项的Perl正则表达式,例如/(a+b)^n(c+d)^m/m
,
'^'将匹配内部行首。所以......
/
(a+b) # Match one or more as followed by b
^n # Match the beginning of a line followed by a literal n.
(c+d) # Match one or more cs followed by d
^m # Match the beginning of a line followed by a literal m.
/mx
(a + b)和(c + d)将以1美元和2美元的价格提供。