python - 如果具有相似的模式,Python 正则表达式会捕获该组
问题描述
我有一个包含推文的数据集,但格式如下:
@ xxx _ yyy having trouble finding regex for this case #regex # python @stackoverflow # I _ got _ this
现在,如果您看到数据不是理想的形式,主题标签和推特 ID 的格式正确。现在,出于情感分析的目的,我需要从数据中删除这些标签和 ID。
现在,这是我正在使用的正则表达式:
[@|#]\s*\S+\s*_\s*\S+|[@|#]\s*\S+
现在,这不是完美的,但它解决了大部分问题。它匹配@ xxx _ yyy、 #regex、# python、 @stackoverflow和# I _ got。但是这里的一个问题是,它不是捕获整个#I_got_this,而是只捕获#I_got。这就是我坚持的地方。
欲了解更多信息:pythex
我正在寻找一个匹配字符串的正则表达式,无论字符串中有多少个 Undescores ( _ )。它应该匹配到最后一个下划线之后的字符串。
我希望我在问题陈述中非常清楚。请在这里指导我。
解决方案
您可以使用
[@#]\s*\S+(?:\s*_\s*\S+)*
或者,更精确一点,因为\S
也匹配_
:
[@#]\s*[^_\s]+(?:\s*_\s*[^_\s]+)*
细节
[@#]
-#
或@
字符\s*
- 0 个或多个空格[^_\s]+
- 1 个或多个除空格以外的字符和_
(?:\s*_\s*[^_\s]+)*
- 0个或多个序列\s*_\s*
-_
包含 0 个或多个空格的[^_\s]+
- 1 个或多个除空格以外的字符和_
推荐阅读
- php - Yii2 控制台命令在 centOS 上不起作用
- ios - 如何下载苹果开发者资料以在 xcuitrunner 中使用?
- sql - 在 Presto 中将 yyyyMMdd 字符串转换为日期时间
- php - 将单引号与 preg_match 和 filter_var() 函数一起使用时出现问题
- webrtc - 如何使用 webRTC 使用 RTMP 服务器播放视频
- ruby-on-rails - Rails 6 - 通过记录创建 has_many
- html - 如何在不更改角度的ui的情况下关闭对话框
- python - 大熊猫在分组后找到中位数
- c# - 构建后如何指定发布/调试文件夹的目录结构
- reactjs - 嵌套 GraphQL 查询以显示 React / GatsbyJS 中的最新博客文章