替换python的正则表达式
我喜欢用新字符串“MEMORY247”代替0.0MB、2GB、0Gb…字符串,我在下面尝试过,但结果不正确。请使用python告诉我正确的正则表达式 b=re.sub(“\d.(\s\w+b)”,'MEMORY247','0.0Mb不够2GB比3.4gb多出0 GB空间') 谢谢 Mukthar给你:替换python的正则表达式,python,python-3.x,Python,Python 3.x,我喜欢用新字符串“MEMORY247”代替0.0MB、2GB、0Gb…字符串,我在下面尝试过,但结果不正确。请使用python告诉我正确的正则表达式 b=re.sub(“\d.(\s\w+b)”,'MEMORY247','0.0Mb不够2GB比3.4gb多出0 GB空间') 谢谢 Mukthar给你: re.sub("\d+\.*\d*\w*", 'MEMORY247', '0.0Mb is not enough 2GB is much 0gb more space 3.4gb') 这意味着:
re.sub("\d+\.*\d*\w*", 'MEMORY247', '0.0Mb is not enough 2GB is much 0gb more space 3.4gb')
这意味着:
- \d+查找至少一个数字
- 可能有一个点
- \可能还有更多的数字
- \可能有一些字符
"\d+\.*\d*[kKmMgG][bB]"
试试下面的方法
>>>st='0.0Mb is not enough 2GB is much 0gb more space 3.4gb'
>>>re.sub('(\d+\.*\d*((MB)|(GB)))','MEMORY247',st,flags=re.IGNORECASE)
>>>'MEMORY247 is not enough MEMORY247 is much MEMORY247 more space MEMORY247'
>>>
您正在搜索的模式是
- 数字\d+
- 后跟一个可选点*
- 后跟可选数字\d*
- 后跟GB或MB((MB)|(GB))
要使匹配不区分大小写,请将re.IGNORECASE作为标志传递您不太清楚要实现什么。在您的问题中,您能否发布A)替换前示例字符串的样子,以及B)替换后相同的示例字符串?此RE将匹配
3muskeers
,以及和1
。更具体一点怎么样?不公平,对于给定的字符串它可以工作。谁说输入是完全随机的?所以它匹配货币0.00rs作为内存处理并给出错误的结果..请告诉我这个的确切解决方案。。