捕获所有*之前没有<

时间:2018-07-31 12:49:45

标签: python regex python-3.x

我想捕获*之前的所有<

r'(?<!\<)(\*{1,4})'

这仅省略了<*,但没有省略<**<***

我正在使用Python 3和重新库。

1 个答案:

答案 0 :(得分:5)

您可以使用

(?<![<*])(\*{1,4})(?!\*)

请参见regex demo

在后面的*中向<添加一个(?<![<*])可以防止星号与之匹配,如果它们前面也有另一个星号,而负向的lookahead则可以防止它们与星号相匹配。

详细信息

  • <-当前位置左侧紧随其后的是*(\*{1,4})的否定后向匹配失败
  • (?!\*)-1到4个星号
  • jsonObj.general_array.push({newKey:['d','e','f']}); -如果在当前位置的右侧紧邻有一个星号,则负匹配将使匹配失败。