您的位置:首页 > 娱乐 > 明星 > 武汉小程序开发制作_济南网站建设成之运维_其他搜索引擎_百度开店怎么收费

武汉小程序开发制作_济南网站建设成之运维_其他搜索引擎_百度开店怎么收费

2025/3/18 18:48:59 来源:https://blog.csdn.net/2301_76771985/article/details/146329113  浏览:    关键词:武汉小程序开发制作_济南网站建设成之运维_其他搜索引擎_百度开店怎么收费
武汉小程序开发制作_济南网站建设成之运维_其他搜索引擎_百度开店怎么收费

正则表达式:贪婪匹配与非贪婪匹配

非贪婪匹配

.*?这三个字符的组合就是非贪婪匹配,意思是匹配任意字符直到遇到第一个后面指定的字符,比如.*?_就表示匹配任意字符直到碰到下划线,还可以组合^来表示从头匹配,比如^.*?_就是从头开始匹配任意字符直到遇到第一个下划线。

举个例子

x <- c("apple_banana_cherry", "dog_cat", "red_blue_green")

# 使用 sub() 函数进行替换

result <- sub("^.*?_", "", x)

结果应该是 "banana_cherry" "cat" "blue_green"

^.*?_匹配到第一个下划线之前的所有字符,^表示从开头匹配。

贪婪匹配

.*在正则表达式中表示贪婪匹配,其中.是一个元字符,在正则表达式里,它代表除换行符之外的任意单个字符。* 是一个量词,它表示前面的元素(这里指 .)可以出现零次或多次。

所以,.* 组合起来的意思是匹配任意数量(包括零个)的任意字符。它会尽可能多地匹配字符,也就是所谓的 “贪婪匹配”。

举个例子

x <- c("apple_banana_cherry", "dog_cat", "red_blue_green")

result <- sub(".*_", "", x)

因为 sub(".*_", "", x)函数表示把指定部分替换成空字符也就是删除正则表达式匹配到的部分,后面有一个_,.*_就是匹配到最后一个_,前面的所有字符。

此时的result应该是"cherry" "cat" "green"

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com