2024-09-28 01:31:54 发布
网友
为什么这样不行?你知道吗
re.sub('\\b[a@](\\W|[a@])*[s5$](\\W|[s5$])*[s5$](\\W|[s5$])*($|\\W)', '*', '@ss')
我不明白为什么@ss不被*取代。类似地,@55也不被替换。你知道吗
@ss
*
@55
这些被替换:a55,a5s,as5,ass
谢谢你!你知道吗
如果你在尝试一种“亵渎”检查-我会把逻辑从正则表达式中去掉。你知道吗
look_alike = {'@': 'A', '$': 'S'} test_string = ''.join(look_alike.get(c, c) for c in your_string.upper()) # also look at `string.translate`
然后if 'ASS' in test_string-或类似的单词边界使用re。你知道吗
if 'ASS' in test_string
这是因为@不是单词字符,因此第一个\b不匹配。你知道吗
@
\b
我的建议是:
re.sub('(\\ba|@)(\\W|[a@])*[s5$](\\W|[s5$])*[s5$](\\W|[s5$])*($|\\W)', '*', '@ss')
(将\b[a@]替换为(\ba|@))
\b[a@]
(\ba|@)
第一节周围没有一对圆括号。试试这个:
re.sub('(\\b[a@])*(\\W|[a@])*[s5$](\\W|[s5$])*[s5$](\\W|[s5$])*($|\\W)', '*', '@ss')
如果你在尝试一种“亵渎”检查-我会把逻辑从正则表达式中去掉。你知道吗
然后
if 'ASS' in test_string
-或类似的单词边界使用re。你知道吗这是因为
@
不是单词字符,因此第一个\b
不匹配。你知道吗我的建议是:
(将
\b[a@]
替换为(\ba|@)
)第一节周围没有一对圆括号。试试这个:
相关问题 更多 >
编程相关推荐