Sim*_*eSi -1 python regex python-2.7
我喜欢在字符串中的任何数字序列周围添加[]
"pixel1blue pin10off output2high foo9182bar"
Run Code Online (Sandbox Code Playgroud)
应转换为
"pixel[1]blue pin[10]off output[2]high foo[9182]bar"
Run Code Online (Sandbox Code Playgroud)
我觉得必须有一个简单的方法,但它逃避我:(
是的,有一种简单的方法,使用re.sub():
result = re.sub(r'(\d+)', r'[\1]', inputstring)
Run Code Online (Sandbox Code Playgroud)
这里\d匹配一个数字,\d+匹配1位或更多位数.在(...)围绕图案组比赛,所以我们可以参考它的第二个参数,替换模式.该模式只是替换[...]组周围的匹配数字.
请注意,我使用r'..'原始字符串文字; 如果你不这样做,你必须加倍所有的\反斜杠; 请参阅Python Regex HOWTO 的反斜杠瘟疫部分.
演示:
>>> import re
>>> inputstring = "pixel1blue pin10off output2high foo9182bar"
>>> re.sub(r'(\d+)', r'[\1]', inputstring)
'pixel[1]blue pin[10]off output[2]high foo[9182]bar'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |