2

您好我想知道是否有一个正则表达式可以执行以下操作:

从一个字符串中选择所有子字符串:

  • &和开始
  • 在( n >= 0)之后有n个字符&

并且那些子字符串不是

  • &
  • '
  • <
  • >或者
  • "

例如,给定字符串

'Stewie & Brian    &partners in crime;'

是否有一个只返回子字符串的正则表达式 &partners

我的直觉说不,因为我需要一个上下文无关的语法,但我怎样才能证明呢?是否有正则表达式可以用泵引理对其进行测试?

或者一个正则表达式实际上存在而我的直觉是错误的?

谢谢

4

1 回答 1

2

当然:

&(?!(amp|apos|lt|gt);)\S{4,}

对于 n=4

现场演示

这里的关键是否定前瞻(?!(amp|apos|lt|gt);),它断言(不消耗输入)紧随其后的输入匹配(amp|apos|lt|gt);

于 2016-01-08T16:46:59.933 回答