@@ -1580,8 +1580,91 @@ class MyCls(object):
1580
1580
1581
1581
## 正则表达式
1582
1582
### 94.请写出一段代码用正则匹配出ip?
1583
+
1583
1584
### 95.a = “abbbccc”,用正则匹配为abccc,不管有多少b,就出现一次?
1585
+ 思路:不管有多少个b替换成一个
1586
+
1587
+ re.sub(r'b+', 'b', a)
1584
1588
### 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
+
1585
1668
### 97.用Python匹配HTML g tag的时候,<.> 和 <.* ?> 有什么区别
1586
1669
### 98.正则表达式贪婪与非贪婪模式的区别?
1587
1670
### 99.写出开头匹配字母和下划线,末尾是数字的正则表达式?
0 commit comments