posix正则表达式不匹配一个单词

时间:2016-08-13 03:20:41

标签: regex posix

因此,例如我试图不匹配'测试'。我试过[^ t] [^ e] [^ s] [^ t]。它不会匹配它,但如果至少有一个字符与相同位置的音符匹配,它也不会匹配。

知道怎么解决这个问题吗?

请注意,这是正则表达式的POSIX版本,没有前瞻或外观。

另外,为了澄清,我想要的单词是在某些字符之间,即字符串" sdkfjdlskj"我正在寻找'<>'之间的所有内容。电子邮件部分很简单,但不匹配某个单词是非常难以理解的。

1 个答案:

答案 0 :(得分:2)

过去的典型方法是在单词中的每个位置进行测试。

Compressed

([^t]+|(t([^e]|$)|te([^s]|$)|tes([^t]|$)))+

Formatted

 (                          # (1 start)
      [^t]+ 
   |  
      (                          # (2 start)
           t
           ( [^e] | $ )               # (3)
        |  te
           ( [^s] | $ )               # (4)
        |  tes
           ( [^t] | $ )               # (5)
      )                          # (2 end)
 )+                         # (1 end)