宝哥软件园

正则表达式的多行模式和单行模式图形分析

编辑:宝哥软件园 来源:互联网 时间:2021-09-05

在Expresso中,测试“多行模式”

测试一

注意:在这里的示例文本中,3ee之后没有回车,光标刚好在e后面,匹配的结果是3ee,如上图的搜索结果区域所示。

为什么1abcde和2abc在这里不能匹配?

打开多行模式

您可以匹配字符串的开头(字符串的起始位置)或行的开头(换行符后的位置n)。$您可以匹配字符串的结尾(字符串的结束位置)或行的结尾(换行符之前的位置)

关闭多行模式

只能匹配字符串的开头$只能匹配字符串的结尾

知识点:r是回车,n是换行。在车窗上,我们通常说的是先进入车内,再进行包线;这将在下面详细解释。

如上图所示:r匹配[CR],n匹配[LF] —— CR作为回车LF作为换行字符串,例如,abcde在windows操作系统中实际上是ab[CR][LF]cd[CR][LF]e

在窗口中,文本中的回车存储为:0D 0A。也就是说,先存储“enter r”Cr,再用符号“ r”表示“wrap n”LFCR,ASCII码为13,十六进制为0x0DLF用符号' n '表示,ASCII码为10,十六进制为0x0A

正则表达式:(?m)^(dw )(s*)$

示例文本

匹配结果

在Expresso和PHP中,启用多行模式,' $ '匹配字符串的结束位置或' n '之前的位置。

单线模式

打开单行模式:您可以匹配任何字符(包括换行符)。关闭单线模式:仅匹配任何其他非换行符(。您可以匹配r,即除不匹配字符之外的所有字符n)。)

多行模式影响0和$的匹配。单线模式影响的匹配。

多行模式必须包含$或者两者都包含,否则即使添加了M,也没有意义

单线模式和多线模式是八杆子打不着的两个概念。只是因为规律性发展的历史原因,这两个概念是相互排斥的。单行模式影响小数点“”的匹配范围多行模式会影响“”和$”的匹配范围

至于后面的概念,全局匹配、多线模式和贪婪模式之间没有必然联系

全局匹配关闭,只匹配第一个成功的匹配,全局匹配打开,匹配所有成功匹配的全局模式只是一些脚本语言中的概念。匹配时,全局模式关闭,这类似于中的匹配方法。NET中的匹配方法。NET在替换时关闭全局模式,类似于Java中的replaceFirst,打开全局模式。

(匹配时,关闭全局模式,类似于PHP中的preg_ match函数;打开全局模式,类似于PHP中的preg_ match_ all函数)

更多资讯
游戏推荐
更多+