正则表达式的多行模式和单行模式图形分析
在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)^(\d\w )(\s*)$
示例文本
匹配结果
在Expresso和PHP中,启用多行模式,' $ '匹配字符串的结束位置或' \n '之前的位置。
单线模式
打开单行模式:您可以匹配任何字符(包括换行符)。关闭单线模式:仅匹配任何其他非换行符(。您可以匹配\r,即除不匹配字符之外的所有字符\n)。)
多行模式影响0和$的匹配。单线模式影响的匹配。
多行模式必须包含$或者两者都包含,否则即使添加了M,也没有意义
单线模式和多线模式是八杆子打不着的两个概念。只是因为规律性发展的历史原因,这两个概念是相互排斥的。单行模式影响小数点“”的匹配范围多行模式会影响“”和$”的匹配范围
至于后面的概念,全局匹配、多线模式和贪婪模式之间没有必然联系
全局匹配关闭,只匹配第一个成功的匹配,全局匹配打开,匹配所有成功匹配的全局模式只是一些脚本语言中的概念。匹配时,全局模式关闭,这类似于中的匹配方法。NET中的匹配方法。NET在替换时关闭全局模式,类似于Java中的replaceFirst,打开全局模式。
(匹配时,关闭全局模式,类似于PHP中的preg_ match函数;打开全局模式,类似于PHP中的preg_ match_ all函数)
版权声明:正则表达式的多行模式和单行模式图形分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。