正则表达式模式匹配无字符串或字符串常量的1

时间:2013-11-25 15:08:01

标签: regex

考虑这个正则表达式模式:

[0-9A-Za-z](.html)*

以上模式符合以下所有条件:

A
A.html
A.html.html

如何更改模式以使其仅匹配A或A.html?

谢谢!

4 个答案:

答案 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)?)/