字符串正则匹配替换

re.sub的功能

re是regular expression的缩写,表示正则表达式;sub是substitude的缩写,表示替换

re.sub是正则表达式的函数,实现比普通字符串更强大的替换功能

sub(pattern,repl,string,count=0,flag=0)

1))pattern正则表达式的字符串 eg中r‘\w+‘

2))repl被替换的内容eg中‘10‘

3))string正则表达式匹配的内容eg中"xy 15 rt 3e,gep"

4))count:由于正则表达式匹配的结果是多个,使用count来限定替换的个数从左向右,默认值是0,替换所有的匹配到的结果eg中2

5))flags是匹配模式,可以使用按位或者“|”表示同时生效,也可以在正则表达式字符串中指定eg中flags=re.I

eg:

>>>import re

>>>re.sub(r‘\w+‘,‘10‘,"xy 15 rt 3e,gep",2,flags=re.I )

‘10 10 rt 3e,gep‘,

其中r‘\w+‘为正则表达式,匹配多个英文单词或者数字,‘10‘为被替换的内容,“xy 15 rt 3e,gep”是re匹配的字符串内容,count只替换前2个,flag表示忽略大小写

参考:https://www.cnblogs.com/baxianhua/p/8514679.html

原文地址:https://www.cnblogs.com/wisir/p/10711047.html

时间: 2024-11-08 12:03:12

字符串正则匹配替换的相关文章

PHP正则匹配替换图片地址

网上能找到很多匹配图片src的正则表达式和替换的实例,都是然并卵,不能马上解决问题. 只是要找到src里的那一段给替换掉就行了. 给一段内容: $content = '<img src="http://www.domainname.com/600_0_100_1/1439035192.4102/1e45426fe3d5410eedd45a82d9a0aead.jpg" rel="12375880" />'; 正则匹配替换:preg_replace(&qu

关于Boost,C Regex对短目标字符串正则匹配的性能分析

昨天对长目标字符串下的各种正则匹配库性能进行了总结,得出结论是Boost regex性能最佳.今天将其应用到项目当中,果不其然,长字符串匹配带来的性能损失基本没有了,当然,目前规模并不算太大,但是在可预计规模内Boost可以完全达到要求. 不过有一点,在Boost,C同时去除长字符串匹配的影响后,剩下都是短字符串匹配,发现Boost比C好的并不是好很多,例如10000+次短字符匹配中,其中包含匹配成功和不成功的,Boost regex+系统其他模块用时130ms左右,而C regex+系统其他模

特定中文字符串正则匹配

最近遇到了一个匹配中文特定字符串的问题,记录下来 问题描述:匹配"美丽乡村"中的一个字符或几个,如果是多个字符,顺序不能改变,如"丽乡" 解决过程: 之前知道匹配中文字符串,正则表达式中使用的是unicode编码的范围,如/^[x{4e00}-x{9fa5}]+$/u 想着特定字符是否可以不用转换成unicode编码,于是写出正则  '/^[美]{0,1}[丽]{0,1}[乡]{0,1}[村}]{0,1}$/u',总不能正确匹配 于是把汉字改成unicode编码,正

iOS截取特定的字符串(正则匹配)

有时候我们会有需求从一个字符串中截取其他的字符串,根据情况的不同,我们来分析几种方法~~ 一. 固定长度字符串中截取固定位置长度的字符串 // 这是比较简单的一种情况:比如截取手机号的后4位 let phoneNum = "18515383061" var suffixNum:String? // 从倒数第四位开始截取,截取到最后 suffixNum = phoneNum.substringFromIndex(phoneNum.endIndex.advancedBy(-4)) // 从

Python之字符串正则匹配

需求: 正则表达式匹配某个文本模式,但是它找到的是模式的最长可能匹配(因为是贪婪匹配 ). 而你想修改它变成查找最短的可能匹配. import re text2 = 'Computer says "no." Phone says "yes."' str_pat=re.compile(r'"(.*)"') # 匹配引号包裹的任意文本,并编译 print(str_pat.findall(text2)) #['no." Phone says

正则匹配 替换..追加..

这里都是以 图片中的元素为例: 匹配出IMG标签中alt的值: 1 Regex reg = new Regex(@"(?is)(?<=<img[^>]*)[^""]*(?=""[^>]*>)"); 替换alt 内容: var replace = "alt=' 要替换的内容 "; source = Regex.Replace(source, "alt=\"\""

字符串正则匹配(递归/DP)

Wildcard-Matching &  Regular Expression Matching Wildcard-Matching中?匹配任意一个字符,*匹配任意长度字符串包括空字符串 方法一:记录*的位置,分别考虑*匹配空,匹配一个,匹配两个,三个... 1 bool isMatch(const char *s, const char *p) { 2 int sStar=-1,pStar=-1; 3 int i=0,j=0; 4 for(i=0;i<strlen(s);)//不考虑p字符

linux 中进行字符串的匹配替换

第一种方式 sed -i "s/替换的目标/替换之后的内容/g" 要进行替换的文件. 第二种方式: echo "要进行替换的字符串"  |  sed -e "s/替换的目标/替换之后的内容/g" 第三种方式: firstStr=$1secondStr=$2replacestr=$3 echo "======firststr is ====== ${firstStr}" echo "======secondstr is

Java常用的几个正则方法(查找索引,匹配,替换)

正则表达式是一种为了方便操作字符串而约定的规则.在PHP,JAVA等很多主流语言都有正则的使用.最常见的用法莫过于查找,替换和匹配.下面作为简单的总结,通过用简单的例子,记录下常用的几个方法. 关于正则如何使用,就不解释了,因为网上也能找到非常多的相关资料可以看.这里只将几个常用的方法总结: 查找索引 通过关键字符串,去在目标内容中去匹配查找它的位置,这应该是最常见的用法. String类也同样提供了indexOf() 方法去实现相同的效果.但indexOf()只能从开头的位置或者特定位置去查找