多个否定先行的语法

时间:2019-08-15 23:45:29

标签: python regex

我要提取/ nr到方括号或逗号加空格之间的文本,像这样

[A/nrf, B/cc, C/nrf, (/w, D/nr, )/w, ,/w, E/p, F/rr, G/ude1]

我想要A和D。我尝试过(?!,\s)(?!\[)([^,]+)/nr(?=,),但它只匹配D。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您要匹配A和D,但是根据注释extract texts that are between /nr AND an opening square bracket or comma plus space中的逻辑,这将为您提供A,C和D。

(?:\[|, )([^,]+)/nr

您可以使用捕获组来捕获所需内容,并在该组的前后匹配您想要的内容。

说明

  • (?:\[|, )非捕获组,匹配[或逗号和空格
  • ([^,]+)在第1组中匹配超过1次而不是逗号的捕获
  • /nr匹配/nr

Regex demo