Python 正则表达式不识别'#';移除 >如何从代码中删除 >代码>,后面跟着“代码> >‘< /代码>,而不只是”/“代码>,如果它本身存在,在单词的中间,甚至在结尾。
目前我使用的是正则表达式:Python 正则表达式不识别'#';移除 >如何从代码中删除 >代码>,后面跟着“代码> >‘< /代码>,而不只是”/“代码>,如果它本身存在,在单词的中间,甚至在结尾。,python,regex,python-3.x,data-science,Python,Regex,Python 3.x,Data Science,目前我使用的是正则表达式: test = "# #DataScience" test = re.sub(r'\b#\w\w*\b', '', test) 用于从以“#”开头的单词中删除“#”,但它根本不起作用。它按原样返回字符串 有人能告诉我为什么不能识别和删除“#”? 示例- 测试-“##数据科学” 预期输出-“#数据科学” 测试-“kjndjk#jnjkd” 预期输出-“kjndjk#jnjkd” 测试-“##数据科学#KJSBDKJ kjndjk#jnjkd#JKZJKH#iusadh
test = "# #DataScience"
test = re.sub(r'\b#\w\w*\b', '', test)
用于从以“#”开头的单词中删除“#”,但它根本不起作用。它按原样返回字符串
有人能告诉我为什么不能识别和删除“#”
?
示例-
测试-“##数据科学”
预期输出-“#数据科学”
测试-“kjndjk#jnjkd”
预期输出-“kjndjk#jnjkd”
测试-“##数据科学#KJSBDKJ kjndjk#jnjkd#JKZJKH#iusadhuish#”
预期输出-
“#数据科学KJSBDKJ kjndjk#jnjkd JKZJKH#iusadhuish#”
您的模式的问题是
不是单词字符,因此\b
无法使用它。您可以改为使用查找:
test = "#HereToHelp STUFF #DataScience"
print(test)
test = re.sub(r'(?:(?<= )|^)#\w+\b', '', test)
print(test)
#HereToHelp STUFF #DataScience
STUFF
test=“#此处帮助资料#数据科学”
打印(测试)
test=re.sub(r'(?:(?您的\b
未正确放置
您的正则表达式应为:
r'#\b\w+\b'
而且,+
量词意味着一次或多次出现,从而节省了对您的\w\w*
的需求。我知道有一个公认的答案,但我提出的这个regexp似乎也很好用,我个人更喜欢它,因为它更容易阅读:
(\A|[^#\d\w])#\w\w*\b
试试这个:
test ="# #DataScience #KJSBDKJ kjndjk#jnjkd #jkzcjkh# iusadhuish#"
test = re.sub(r'(?<!\S)#(?=\S)', '', test)
如果这个答案解决了你的问题,那么考虑一下点击左边的绿色复选标记来接受它。我只是这么做了!对不起,之前没有接受这个答案。实际上,还有一件事我很抱歉。这个ReGEX删除了整个单词,从'y'开始,实际上我只是想删除“y'”并保留剩余的STR。我意识到我的问题是不正确的。我非常感谢你的帮助。这个正则表达式不适用于我的唯一的情况是当“*”在中间时。因为预期的输出将有整个单词,但是输出不是。例如,在“KJNJJK JJJKD”中,输出应该是单词本身,但它返回“KJNDJK”。。在#
后面总是有字符吗?是的!单词总是以“#”开头,后面跟着单词。输出应该是单词,但开头没有“#”!我对我问题中的错误深表歉意。你能帮我吗?啊,我明白了。嗨!非常感谢你的帮助!我的qu确实犯了一个错误结果输出应该是不带“#”的单词在前面。因此,对于所有以“#”开头的单词和后面跟着一些单词的单词,输出应该是单词,而不是“#”。对于我的问题中出现的错误,我感到非常抱歉。应该注意的是,您可以将\w\w*
更改为仅\w+
effect@AnayPurohit,你应该用几个例子来更新这个问题字符串和预期结果的组合,以便understand@arieljuod我刚刚根据你的建议添加了一些例子!@egragoth如果你能帮助我,我将不胜感激!
# DataScience KJSBDKJ kjndjk#jnjkd jkzcjkh# iusadhuish#