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

如何'#'从字符串中的单词中删除'#',而不仅仅是'#'它本身存在,在单词中间甚至在末尾。

目前我正在使用正则表达式:

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#"


喵喔喔
浏览 186回答 3
3回答

炎炎设计

尝试这个 :test ="# #DataScience #KJSBDKJ kjndjk#jnjkd #jkzcjkh# iusadhuish#"test = re.sub(r'(?<!\S)#(?=\S)', '', test)输出 :# DataScience KJSBDKJ kjndjk#jnjkd jkzcjkh# iusadhuish#

沧海一幻觉

我知道有一个公认的答案,但我想出了这个似乎也能正常工作的正则表达式,我个人更喜欢这个,因为它对我来说更容易阅读:(\A|[^#\d\w])#\w\w*\b

慕田峪4524236

您的\b位置不正确。你的正则表达式应该是:r'#\b\w+\b'而且,+量词表示 1 次或多次出现,这样可以节省您的\w\w*
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python