繁体   English   中英

Python 正则表达式捕获具有相似模式的组

[英]Python regex capture the group if has similar pattern

我有一个包含推文的数据集,但它采用以下形式:

@ xxx _ yyy having trouble finding regex for this case #regex # python @stackoverflow # I _ got _ this

现在,如果您看到数据不是理想形式,其中主题标签和 twitter id 的格式正确。 现在,出于情感分析的目的,我需要从数据中删除这些主题标签和 ID。

现在,这是我正在使用的正则表达式:

[@|#]\s*\S+\s*_\s*\S+|[@|#]\s*\S+

现在,这不是完美的,但它解决了大部分问题。 它匹配@ xxx_yyy 、#regex、 # python 、@stackoverflow 和#I_got 但这里的一个问题是它没有捕获整个#I_got_this ,而是只捕获#I_got 这就是我被困的地方。

更多信息: pythex

我正在寻找一个与字符串匹配的正则表达式,无论字符串中有多少下划线_ )。 它应该匹配到最后一个下划线之后的字符串。

我希望我在问题陈述中说得很清楚。 请在这里指导我。

你可以使用

[@#]\s*\S+(?:\s*_\s*\S+)*

或者,更精确一点,因为\S也匹配_

[@#]\s*[^_\s]+(?:\s*_\s*[^_\s]+)*

请参阅正则表达式演示正则表达式演示 #2

细节

  • [@#] - #@字符
  • \s* - 0 个或多个空格
  • [^_\s]+ - 除空格和_以外的 1 个或多个字符
  • (?:\s*_\s*[^_\s]+)* - 0 个或多个序列
    • \s*_\s* - 包含 0 个或多个空格的_
    • [^_\s]+ - 除空格和_以外的 1 个或多个字符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM