考虑这个正则表达式模式:
[0-9A-Za-z](.html)*
以上模式符合以下所有条件:
A
A.html
A.html.html
如何更改模式以使其仅匹配A或A.html?
谢谢!
答案 0 :(得分:4)
将*
替换为?
?
表示零次或一次
*
表示零次或多次
答案 1 :(得分:1)
这应该这样做:
\w(\.html)?
\ w是组[a-zA-Z0-9]的别名,使其更易于阅读。
答案 2 :(得分:0)
你很亲密。我会修改以下内容......
[0-9A-Za-z](.html)?
祝你好运!
答案 3 :(得分:0)
阅读问题。完全匹配A.html或A
DB<1> $a="A.html"
DB<2> $b="A"
DB<3> x $a =~/A(\.html)/
0 '.html'
DB<4> x $a =~/A(\.html)?/
0 '.html'
DB<5> x $a =~/(A(\.html)?)/
0 'A.html'
1 '.html'
DB<6> x $b =~/(A(\.html)?)/
0 'A'
1 undef
DB<7> $c="X.html"
DB<8> x $c =~/(A(\.html)?)/
empty array
答案是/(A(\.html)?)/