用正则匹配多行文本
2013-08-21 21:02
274 查看
如果有这样一个字符串
$var = "src = arr.c build.c eval.c field.c \
missing.c msg.c re.c version.c"
用一般的^\w+\s*=\s*.*$只能匹配上面的那句,而下面的那一句就无法匹配了
方法一:使用的是perl
注:这里能够匹配成功是因为perl的点号"."能够匹配除了换行符号之外的字符,然后在加上换行符号"\n"
和任意符号".*"就把全部匹配完成了
方法二:有的正则引擎把点号"."解析可以匹配换行符"\n"那可以这样
$var = "src = arr.c build.c eval.c field.c \
missing.c msg.c re.c version.c"
用一般的^\w+\s*=\s*.*$只能匹配上面的那句,而下面的那一句就无法匹配了
方法一:使用的是perl
$var = "src = arr.c build.c eval.c field.c \ missing.c msg.c re.c version.c"; $var =~ m/((^\w+\s*=\s*.*)(\n.*))/; print "$1: ".$1."\n"; print "$2: ".$2."\n"; print "$3: ".$3."\n";结果为:
1: src = arr.c build.c eval.c field.c missing.c msg.c re.c version.c 2: src = arr.c build.c eval.c field.c 3: missing.c msg.c re.c version.c
注:这里能够匹配成功是因为perl的点号"."能够匹配除了换行符号之外的字符,然后在加上换行符号"\n"
和任意符号".*"就把全部匹配完成了
方法二:有的正则引擎把点号"."解析可以匹配换行符"\n"那可以这样
$var =~ m/((^\w+\s*=\s*[^\n]*)(\n.*))/效果跟刚才的那个一样,只是把点号替换为了"[^\n]",这样就排除了换行符号了。
相关文章推荐
- 用正则匹配多行文本
- 正则表达式匹配多行文本的解决方法
- 正则多行文本匹配(包含单引号的处理)
- 匹配文本中的网址java正则表达式
- 如何用正则匹配文本中的文件路径?
- 匹配多行文本 /m用法
- 匹配多行正则的使用 - 文本软件 /Multiline/RegExp/ By Stabx
- PHP匹配多行的正则表达式分析
- 文本匹配模式串的通配符形式转正则表达式的方法
- IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)
- php小功能定制:对txt文本里面的字符串用正则表达式匹配
- java 正则 块转义,忽略大小写,匹配换行模式,匹配先前匹配的文本(解释正则运行机制)
- python正则表达式与文本匹配
- IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)
- 工具介绍:EditPad Pro 7——复制匹配正则表达式文本的工具
- 用python处理时间、utf8文本、正则匹配、序列化、目录路径搜索、xml解析
- Java正则表达式的多行匹配实战-将java文件中的单行和多行注释内容替换为空
- java 正则 块转义,忽略大小写,匹配换行模式,匹配先前匹配的文本(解释正则运行机制)
- 正则匹配多行内容
- PHP匹配多行的正则表达式分析