[英]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]+)*
细节
[@#]
- #
或@
字符\s*
- 0 个或多个空格[^_\s]+
- 除空格和_
以外的 1 个或多个字符(?:\s*_\s*[^_\s]+)*
- 0 个或多个序列
\s*_\s*
- 包含 0 个或多个空格的_
[^_\s]+
- 除空格和_
以外的 1 个或多个字符
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.