在PYTHON中提取标签中的单词

时间:2019-02-27 19:20:17

标签: python regex

您好,我想提取该标签的内容

<Sentiment int=6>Deep injustice</Sentiment>

许多文本句子(Here)。

df['text'].str.extractall(r'^<(?P<Sentiments>\w+).*[int]?.*(?P<Intensite>\d?\d)>(?P<Expression>[a-zA-Z]*?.*[a-zA-Z]*)<')

我的代码只产生其中的几个(标签)。为什么不提取其他内容?

                  Sentiments Intensite               Expression
      match                                                    
405   0         Disagreement         3    Bizarre contradiction
921   0         Satisfaction         5           La plus simple
2549  0      Dissatisfaction         3     Ne me contentant pas

1 个答案:

答案 0 :(得分:1)

您可以使用

df['text'].str.extractall(r'<(?P<Sentiments>\w+)\s+int=(?P<Intensite>\d+)>(?P<Expression>[^<]*)')

请参见regex demo

详细信息

  • <-一个<字符
  • (?P<Sentiments>\w+)-组“情感”:1个或多个字母,数字,下划线
  • \s+-超过1个空格
  • int=-子字符串
  • (?P<Intensite>\d+)-组“强度”:1个以上数字
  • >-一个>字符
  • (?P<Expression>[^<]*)-组“表达式”:除>以外的0个或多个字符