为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式不识别用于删除的“#”

正则表达式不识别用于删除的“#”

喵喔喔 2021-10-26 16:38:29
如何'#'从字符串中的单词中删除'#',而不仅仅是'#'它本身存在,在单词中间甚至在末尾。目前我正在使用正则表达式:test = "# #DataScience" test = re.sub(r'\b#\w\w*\b', '', test)用于从以开头的单词中删除“#”'#'但它根本不起作用。它按原样返回字符串谁能告诉我为什么"#"没有被识别和删除?例子 -测试 - "# #DataScience"预期输出 - "# DataScience"测试 - "kjndjk#jnjkd"预期输出 - "kjndjk#jnjkd"测试 - "# #DataScience #KJSBDKJ kjndjk#jnjkd #jkzcjkh# iusadhuish#""预期输出 -"# DataScience KJSBDKJ  kjndjk#jnjkd jkzcjkh# iusadhuish#"
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

尝试这个 :


test ="# #DataScience #KJSBDKJ kjndjk#jnjkd #jkzcjkh# iusadhuish#"

test = re.sub(r'(?<!\S)#(?=\S)', '', test)

输出 :


# DataScience KJSBDKJ kjndjk#jnjkd jkzcjkh# iusadhuish#


查看完整回答
反对 回复 2021-10-26
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

我知道有一个公认的答案,但我想出了这个似乎也能正常工作的正则表达式,我个人更喜欢这个,因为它对我来说更容易阅读:

(\A|[^#\d\w])#\w\w*\b


查看完整回答
反对 回复 2021-10-26
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

您的\b位置不正确。

你的正则表达式应该是:

r'#\b\w+\b'

而且,+量词表示 1 次或多次出现,这样可以节省您的\w\w*


查看完整回答
反对 回复 2021-10-26
  • 3 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号