简单说说正则中(.*),(.+?)的区别

本文解析了正则表达式中贪婪匹配与非贪婪匹配的区别及应用场景。通过实例展示了两者如何影响字符串的匹配结果,对于理解正则表达式的匹配行为至关重要。
加?表示非贪婪匹配,那么会尽可能少的匹配符合要求的内容,不加则是贪婪匹配,会尽可能多的匹配符合要求的内容,参考

参考例子:

<span>ab</span><span>cd</span><span>ef</span><span>gh</span>

<span>(.+?)<\/span> 只会匹配一个<span>ab</span>



<span>(.+)<\/span>则会匹配<span>ab</span><span>cd</span><span>ef</span><span>gh</span>
深拷贝浅拷贝的区别在于拷贝出来的新对象是否与原对象共享可变元素的地址。在浅拷贝中,新对象的地址原对象是不一样的,但是新对象里的可变元素的地址原对象里的可变元素的地址是相同的。也就是,浅拷贝只拷贝了浅层次的数据结构(不可变元素),而深层次的数据结构(可变元素)并没有被拷贝到新地址里面去,而是原对象里的可变元素指向同一个地址。因此,当对新对象或原对象里的可变元素进行修改时,两个对象是同时改变的。而深拷贝则不会出现这种情况,它会完全复制原对象的所有层次结构,包括可变元素,使得新对象与原对象完全独立。[1] 实现深拷贝的方法有很多种,其中一种简单的方法是使用JSON的序列化反序列化。可以通过将原对象转换为JSON字符串,然后再将JSON字符串转换回对象,从而实现深拷贝。这种方法的优点是简单易用,但是对于一些特殊的对象,如包含函数、正则表达式等的对象,可能会出现无法正确复制的情况。[3]另外,还可以使用递归的方式手动复制对象的每个属性子属性,确保每个属性都是独立的。这种方法相对复杂一些,但是可以更精确地控制拷贝的过程,适用于复杂的对象结构。[3]还可以使用第三方库,如copy模块中的deepcopy函数,它可以递归地复制对象的所有层次结构,包括可变元素,实现深拷贝。[2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值