Julia中replace函数搭配正则表达式\w+/g无效的技术咨询
问题原因解析
- 正则语法不兼容:你可能把JavaScript里的正则全局标志
/g带到Julia里了,但Julia的正则表达式根本不采用这种写法。当你写r"\w+/g"时,/g会被当成字面量字符去匹配——意思是这个正则要找的是「一串字母数字/下划线后面紧跟小写g」的内容,你的字符串里大概率没有这种组合,所以replace自然没动静。 - Julia的
replace默认全局替换:删掉/g后,正则变成r"\w+",它能匹配任意一串字母数字/下划线。而且Julia的replace函数默认就是全局替换所有匹配项,不用额外加标志,所以这时候就能正常移除所有单词了。 - 额外纠正:你原本的需求是移除非字母数字字符,但当前的
r"\w+"是匹配字母数字/下划线,逻辑搞反了。要实现移除非字母数字字符的话,应该用r"\W+"(大写W对应非单词字符,即非字母数字/下划线),代码改成:
new = replace(cont, r"\W+" => "")
内容的提问来源于stack exchange,提问作者Libor P
相关产品推荐
相关产品推荐

