代码之家  ›  专栏  ›  技术社区  ›  kesarling

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

  •  -2
  • kesarling  · 技术社区  · 2 年前

    到目前为止我收集到的信息:

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

    我认为这种模式意味着:
    该行必须以 a b 或者必须以 c 或者必须是空字符串。不过,我在为图案绘制dfa时遇到了麻烦。让我失望的是“可选”符号。我不明白在这种语言中哪些字符串是不被接受的。


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

    1 回复  |  直到 2 年前
        1
  •  1
  •   John Gordon    2 年前

    ^ 匹配行的开头。

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

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

    $ 匹配行的末尾。

    因此,我认为这些线条将匹配:

    (empty line)
    a
    b
    c