Skip to content

Commit 49fa7d3

Browse files
committed
regex:search and replace
1 parent a57db3c commit 49fa7d3

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

README.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1580,8 +1580,91 @@ class MyCls(object):
15801580

15811581
## 正则表达式
15821582
### 94.请写出一段代码用正则匹配出ip?
1583+
15831584
### 95.a = “abbbccc”,用正则匹配为abccc,不管有多少b,就出现一次?
1585+
思路:不管有多少个b替换成一个
1586+
1587+
re.sub(r'b+', 'b', a)
15841588
### 96.Python字符串查找和替换?
1589+
a、str.find():正序字符串查找函数
1590+
函数原型:
1591+
str.find(substr [,pos_start [,pos_end ] ] )
1592+
返回str中第一次出现的substr的第一个字母的标号,如果str中没有substr则返回-1,也就是说从左边算起的第一次出现的substr的首字母标号。
1593+
1594+
参数说明:
1595+
str:代表原字符串
1596+
substr:代表要查找的字符串
1597+
pos_start:代表查找的开始位置,默认是从下标0开始查找
1598+
pos_end:代表查找的结束位置
1599+
1600+
例子:
1601+
'aabbcc.find('bb')' # 2
1602+
1603+
b、str.index():正序字符串查找函数
1604+
index()函数类似于find()函数,在Python中也是在字符串中查找子串第一次出现的位置,跟find()不同的是,未找到则抛出异常。
1605+
1606+
函数原型:
1607+
str.index(substr [, pos_start, [ pos_end ] ] )
1608+
1609+
参数说明:
1610+
str:代表原字符串
1611+
substr:代表要查找的字符串
1612+
pos_start:代表查找的开始位置,默认是从下标0开始查找
1613+
pos_end:代表查找的结束位置
1614+
1615+
例子:
1616+
'acdd l1 23'.index(' ') # 4
1617+
1618+
c、str.rfind():倒序字符串查找函数
1619+
1620+
函数原型:
1621+
str.rfind( substr [, pos_start [,pos_ end ] ])
1622+
返回str中最后出现的substr的第一个字母的标号,如果str中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号。
1623+
1624+
参数说明:
1625+
str:代表原字符串
1626+
substr:代表要查找的字符串
1627+
pos_start:代表查找的开始位置,默认是从下标0开始查找
1628+
pos_end:代表查找的结束位置
1629+
1630+
例子:
1631+
'adsfddf'.rfind('d') # 5
1632+
1633+
d、str.rindex():倒序字符串查找函数
1634+
rindex()函数类似于rfind()函数,在Python中也是在字符串中倒序查找子串最后一次出现的位置,跟rfind()不同的是,未找到则抛出异常。
1635+
1636+
函数原型:
1637+
str.rindex(substr [, pos_start, [ pos_end ] ] )
1638+
1639+
参数说明:
1640+
str:代表原字符串
1641+
substr:代表要查找的字符串
1642+
pos_start:代表查找的开始位置,默认是从下标0开始查找
1643+
pos_end:代表查找的结束位置
1644+
1645+
例子:
1646+
'adsfddf'.rindex('d') # 5
1647+
1648+
e、使用re模块进行查找和替换:
1649+
函数 | 说明
1650+
---|---
1651+
re.match(pat, s) | 只从字符串s的头开始匹配,比如(‘123’, ‘12345’)匹配上了,而(‘123’,’01234’)就是没有匹配上,没有匹配上返回None,匹配上返回matchobject
1652+
1653+
re.search(pat, s) | 从字符串s的任意位置都进行匹配,比如(‘123’,’01234’)就是匹配上了,只要s只能存在符合pat的连续字符串就算匹配上了,没有匹配上返回None,匹配上返回matchobject
1654+
1655+
re.sub(pat,newpat,s) | re.sub(pat,newpat,s) 对字符串中s的包含的所有符合pat的连续字符串进行替换,如果newpat为str,那么就是替换为newpat,如果newpat是函数,那么就按照函数返回值替换。sub函数两个有默认值的参数分别是count表示最多只处理前几个匹配的字符串,默认为0表示全部处理;最后一个是flags,默认为0
1656+
f、使用replace()进行替换:
1657+
基本用法:对象.replace(rgExp,replaceText,max)
1658+
1659+
其中,rgExp和replaceText是必须要有的,max是可选的参数,可以不加。
1660+
rgExp是指正则表达式模式或可用标志的正则表达式对象,也可以是 String 对象或文字;
1661+
replaceText是一个String 对象或字符串文字;
1662+
max是一个数字。
1663+
对于一个对象,在对象的每个rgExp都替换成replaceText,从左到右最多max次。
1664+
1665+
s1='hello world'
1666+
s1.replace('world','liming')
1667+
15851668
### 97.用Python匹配HTML g tag的时候,<.> 和 <.*?> 有什么区别
15861669
### 98.正则表达式贪婪与非贪婪模式的区别?
15871670
### 99.写出开头匹配字母和下划线,末尾是数字的正则表达式?

0 commit comments

Comments
 (0)