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

如何用正则表达式表示epsilon?

  •  1
  • ubiquibacon  · 技术社区  · 16 年前

    (ε) 符号,但如何将该符号直接转换为代码而不必完全重写正则表达式?

    a (或两者兼有)。

    不是100%确定这是正确的,但是。。。

    ((a)| epsilon * a) |(a[a-z] (一)| ε

    因此,一些应该匹配的字符串包括:

    a //single "a" starts or ends with "a"
    
    aa //starts and ends with "a"
    
    ab //starts with "a"
    
    ba //ends with "a"
    
    aba //starts and ends with "a"
    
    aaaaaaaa //starts and ends with "a"
    
    abbbbbbb //starts with "a"
    
    bbbbbbba //ends with "a"
    
    abbbbbba //starts and ends with "a"
    
    asdfhgdu //starts with "a"
    
    onoineca //ends with "a"
    
    ahnrtyna //starts and ends with "a"
    

    我只想交换什么 ε

    这样的符号存在吗?

    我想要的可能吗?

    1 回复  |  直到 16 年前
        1
  •  11
  •   Konrad Rudolph    16 年前

    省略,因为它表示空字符串:

    ([1-9]|)[0-9]*
    

    对于这种特殊情况,还有一条捷径:

    ([1-9]?)[0-9]*
    

    这个 ? 表示前面标记的零次或一次出现。