模式“^[ab]?|c?$”接受哪些字符串?

问题描述 投票:0回答:1

到目前为止我收集到的:

  1. ^ -> 匹配第一个符号
  2. $ -> 匹配最后一个符号
  3. [] -> 可以位于该位置的字符集
  4. | ->“或”运算符
  5. ? -> 前面的条件是可选的

我认为该图案的含义:
该行必须以

a
b
开头,或者必须以
c
结尾,或者必须是空字符串。不过,我在绘制图案的 dfa 时遇到了麻烦。让我失望的是“可选”符号。我无法理解该语言不接受哪些字符串。


有人能指出我正确的方向吗?

pattern-matching dfa
1个回答
0
投票

^
匹配行的开头。

[ab]?
匹配“a”或“b”,或者什么都不匹配。

c?
匹配“c”,或者什么都不匹配。

$
匹配行尾。

所以,我认为这些行会匹配:

(empty line)
a
b
c
© www.soinside.com 2019 - 2024. All rights reserved.