如何删除单词'#'
在后面跟着'#'
并不仅仅是'#'
如果其存在本身,在单词中间,甚至在结尾的字符串。
目前我使用正则表达式表达:
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#"
尝试这个 :
test ="# #DataScience #KJSBDKJ kjndjk#jnjkd #jkzcjkh# iusadhuish#"
test = re.sub(r'(?<!\S)#(?=\S)', '', test)
输出:
# DataScience KJSBDKJ kjndjk#jnjkd jkzcjkh# iusadhuish#
使用图形的问题是,#
不是一个单词字符,因此\b
不会使用它。您可以改用回顾后:
test = "#HereToHelp STUFF #DataScience"
print(test)
test = re.sub(r'(?:(?<= )|^)#\w+\b', '', test)
print(test)
#HereToHelp STUFF #DataScience
STUFF
您\b
放置不正确。
您正则表达式的表述应该是:
r'#\b\w+\b'
而且,在+
量词是指1个或多个节省了需要您\w\w*
我知道有一个公认的答案,但我想出了这个正则表达式,似乎工作也没关系,我个人更喜欢这个,因为它更易于阅读对我来说:
(\A|[^#\d\w])#\w\w*\b