js正则表达式match,正则表达式match的返回值
正则表达式
本质上,正则表达式(或re)是一种小型且高度专业化的编程语言Python内置于Python程序中,通过re模块实现正则表达式模式是背诵统一系列的字节码,由c语言编写的匹配引擎执行,主要用来实现模糊匹配
正则表达式中有两种字符一种是普通文本,即包含所有字母数字字符的文本,另一种是元文本($ *?{} [] (() ) ) ) )
元字符 .通配符,\ n匹配所有其他字符
导入报告(查找全部(a. x),abcalcxdd))元字符^
指示是否以字符开头,该字符也必须放在开头
进口报告(re.findall ((a.a),()abcalxdd))元字符$
$表示后面的字符是否结束,它也必须放在末尾
导入报告(re.find all (c. d $ ,abcalcxdd))元字符*
表示前一个字符的重复,可以匹配0次到无限次,即匹配的对象不能出现一次,所以通常与或$一起使用
进口报告(参考findall (d * ,dddabcalcxddddd))元字符+
但匹配字符必须出现一次默认值是贪婪匹配
导入报告(查找全部(xbdzxc,)xbdzxcxxxxx
ads’)元字符?
?匹配变成了懒匹配。
Import (re.find all)) xbdzxc?xbdzxc
()中的内容具有更高的优先级。
导入转载(re.findall((?ABC), ABCABCBC ))导入转载(re.findall (www \。(百度谷歌)\。com , www . Baidu . com )#这里的结果只显示百度,因为()中的内容有更高的优先级print(re . find all):Baidu Google)\。com , www.baidu.com)) #都可以用?去掉()的优先级(),也可以使用命名匹配的方法。
导入转载(re.search((?Pname\w), xbdzxc )。group())#?Pname的写法相当于把下面的内容命名为name,在匹配规则前加r,也就是说raw string不需要python解释器翻译(不转义)。
进口重印(re。find all (r i \ d , hello i11 an list )\ table也可以逃避这种情况。
但是注意这里的\表转义需要用两次,因为python解释器也会有\b理解,它需要用\b来表示不需要python解释器转义最后传递给re匹配 \b 的内容
进口重印(关于。findall (a \\d , DSA sa 123 dsada ))import reprint(re。需要传入findall (a \ \ \ d , DSA DSA \ DSA da )#来重新\ \ d这样两个
re.findall()
将所有匹配的对象放在一个列表中。
导入转载(re.findall(abcfkdqz , fkdqzfkdqzabcfkdqzfkdqz ))re . rearch()
结果将返回给一个对象,一旦匹配到第一个目标内容,它就停止。如果匹配不成功,将不返回值。通过group获取结果,当使用命名匹配方法时,group()中的内容就是命名名称。
导入转载(re.search((?Pname[a-z])(?Page\d), xbdzxc18 )。group(name)) re.match()
用法类似于search(),只不过match只匹配开头。
导入转载(re.match(\d , 111xbdzxc36wusir34 )。group())print(re.match(\d , xbdzxc36wusir34 )。group()) re.split()
类似于string的拆分方法,优点是可以指定规则。
导入打印(请参考拆分(, hello world ))打印(re。拆分( \ d ,你好32132世界321321世界))。注意,当规则中有[]时,该方法将按上一个分数,然后按下一个分数。
导入打印(请参考split ([AB], ASD ABCD )#先按A,结果是_sd_bcd,再按B,结果是_sb_cd re.sub()
将所有指定内容更改为另一个指定内容。
import Reprint(re sub( \ d , a , DSA sa 123123 DSA )#将所有数字更改为re。subn()的用法与re一致。sub(),结果会以tuple的形式返回,替换的次数会在元祖的第二个元素中给出。
import reprint(re.subn(\d , A , DSA sa 123123 DSA ))re . compile()
设置规则后直接使用可以提高编译效率。
import recom=re . compile( \ d )print(com . search( dsad sad 1111 dsad sa 555 )。group()) re.finditer()
使用和find(0一样的方法,结果会返回一个迭代器。目的是在处理大数据的时候不要把所有的结果都放到内存里。使用next(ret)的方法。组来获得下一个结果。
import reret=re.finditer(\d , dsad sad 123 dsad sa 1456 dsad sa )print(next(ret)。group())打印(next(ret)。group())
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。