Python re正则表达式替换字符,python正则表达式,python a="32
Python re正则表达式替换字符,python正则表达式,python a="32
python a="32<2>fdssa</2>ffdsa32" re.sub(r'<(\d+)>|</(\d+)>',"item",a)
result:'32itemfdssaitemffdsa32'
如何正确替换得到结果:
a="32<item>fdssa</item>ffdsa32"
import rea="32<2>fdssa</2>ffdsa32"re.sub(r'<\d+?>(.+?)</\d+?>', r'<item>\1</item>', a)
re.sub(r'((?<=<)|(?<=</))\d+','item',a)
或者
re.sub(r'((?<=<)|(?<=</))\w+','item',a)
美女,给你两个解法
第一个是用non-greedy match:
In [1]: re.sub(r'<(/?)\d+>+?',"<\g<1>item>","32<2>fdssa</2>ffdsa32")Out[1]: '32<item>fdssa</item>ffdsa32'
另外一个是传个函数进去:
def repl(match): if match.group(1): return "<item>" elif match.group(2): return "</item>" else: return ""re.sub(r'(<\d+>)+?|(</\d+>)+?',repl,"32<2>fdssa</2>ffdsa32")==>'32<item>fdssa</item>ffdsa32'
这样?
>> re.sub(r'<\d+>([^<]+)</\d+>', r'<item>\1</item>', '32<2>fdssa</2>ffdsa32')'32<item>fdssa</item>ffdsa32'
由于look-behind requires fixed-width pattern,就是这个(?<=<|\/)无法写成(?<=<|<\/)这个形式。
所以,下面的只能凑合着用
re.sub(r'(?<=<|/)\d+(?=>)',"item",a)
下面的答案给了我提示:
re.sub(r'(<\s*\/?\s*)\d+(\s*>)', r'\1item\2', a)
编橙之家文章,
相关内容
- 求简短实用python初学代码,python初学代码,如题,Pytho
- 关于Web服务器底层技术线程阻塞和多路复用的疑问,
- Python字符串转换成列表正则疑问,python字符串,python{t
- 关于pywin32自动输入并完成QQ登陆框效果问题,pywin32qq
- Python错误信息数字所反馈的含义是什么,python错误信息
- Python读取TXT文件有两个\n如何处理,pythontxt,打开txt看到
- Django可执行文件添加路径操作疑问,django可执行文件
- Python实现GUI菜单背景显示文字用什么方法,pythongui,我现
- Django自定义User model如何用groups控制用户权限?,djangog
- Python二进制文件excel、word、txt及pdf相互转换问题,pyt
评论关闭