多行匹配.+表示分组的错误
今天在Java中想使用正则表达式来获取一段文本中的任意字符。于是很随意得就写出如下匹配规则:
(.*)
结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了换行符“\n”以外的所有字符。同时,手册上还有一句话:要匹配包括 '\n' 在内的任何字符,请使用像 '[.\n]' 的模式。于是我将正则表达式的匹配规则修改如下:
([.\n]*),当然,如果是在java程序中直接写到话,需要改为([.\\n]*)
结果再次运行程序,发现什么内容也取不到了。我百思不得其解,又将其修改为如下规则:
([.|\n]*) 以及 ([\n.]*)
结果还是不行,什么内容都取不到。看来点符号和换行符卯上劲了~
然后上网一查,虽然没有查出上述规则到底是什么地方出问题了,但是查出了一个解决办法,经过一试,果然可以匹配包括换行符在内的任意字符,以下为正确的正则表达式匹配规则:
([\s\S]*)
同时,也可以用 “([\d\D]*)”、“([\w\W]*)” 来表示。
在文本文件里, 这个表达式可以匹配所有的英文
/[ -~]/
这个表达式可以匹配所有的非英文(比如中文)
/[^ -~]/
/是VI里用的. 你在editplus或程序里不需要/
----------------以上转自脚本之家----------------
106 sadasd s da s || 10101010
107
108 asde31d12e21
109 e12e12e312r
110 412r
111 1
112 24r4rt4rtf2rt2r24
113 r4
114
115 ########################
要匹配以上这一段固定格式并获取第10编号的内容,正则如下:
\|\|\s\d+([.\n]+)\#{24,}
或者
\|\|\s\d+([\s\S]+)\#{24,}
或者
\|\|\s\d+([\w\W]+)\#{24,}
或者
\|\|\s\d+([.]+)\#{24,} 并启动Dot-all模式,在python中就是把re.match的flag参数加上re.S;在其他平台如cavium hfa中就在开始加上{s}
但是python的re.match是从头开始匹配的额,需加.*;re.search则可以直接使用;
print(matchobj.group(1))即是107line-114line的内容
------------------------------------------------
转载于:https://www.cnblogs.com/pubut/p/7550422.html
多行匹配.+表示分组的错误相关推荐
- js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)...
js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global) 一.总结 1. ...
- 11_CollapsingMergeTree,(State行和Cancel行匹配示例),聚合查询,Cancel状态行取反的聚合查询
10.CollapsingMergeTree 10.1.CollapsingMergeTree 10.2.案例(State行和Cancel行匹配示例) 10.3.示例2:聚合查询 10.4.示例3:C ...
- python非贪婪、多行匹配正则表达式例子[转载]
python非贪婪.多行匹配正则表达式例子[转载] 一些regular的tips: 1 非贪婪flag >>> re.findall(r"a(\d+?)", &q ...
- python字符串与文本处理技巧(2):大小写敏感搜索、最短匹配、多行匹配、Unicode标准化
1. 字符串忽略大小写的搜索替换 re.findall(patter, string, flags=re.IGNORECASE) 当我们需要忽略字符串中的字母大小写进行模式搜索时可以采用如下方案: i ...
- 《Python Cookbook 3rd》笔记(2.8):多行匹配模式
多行匹配模式 问题 你正在试着使用正则表达式去匹配一大块的文本,而你需要跨越多行去匹配. 解法 这个问题很典型的出现在当你用点 (.) 去匹配任意字符的时候,忘记了点 (.) 不能匹配换行符的事实.比 ...
- python非贪婪匹配_Python中关于正则表达式非贪婪以及多行匹配功能详解
这篇文章主要介绍了Python正则表达式非贪婪.多行匹配功能,结合实例形式分析了Python正则表达式中非贪婪及多行匹配功能的实现方法与相关注意事项,需要的朋友可以参考下 本文实例讲述了Python正 ...
- java正则表达式多行匹配,正则表达式多行匹配 - Wangle_OP的个人空间 - OSCHINA - 中文开源技术交流社区...
待匹配内容 Index(dec):1 (hex):1 GigabitEthernet 0/3 is DOWN , line protocol is DOWN Hardware is OCTEON-S ...
- wxd719() :大大您的方法有一点小问题:我设成每页35行,在分组区用GROUPNUMBER MOD 1 =0强制分组从新页开始,加上你的recordNumber mod
wxd719() :大大您的方法有一点小问题:我设成每页35行,在分组区用GROUPNUMBER MOD 1 =0强制分组从新页开始,加上你的recordNumber mod ...
- mysql列不与第一行的值匹配_MySQL和PHP错误:列数与第1行的值数不匹配
尝试将表单中的数据插入数据库时出现此错误.我知道这意味着什么,我只是想不出为什么要得到它.也许我已经开始太久了,错过了什么? 这是我的代码: $q1 = mysql_escape_string($ ...
最新文章
- Spring源码分析【2】-Tomcat和Sping的连接点
- Tomcat(一):背景知识和安装tomcat
- php变量定义的位置,php变量一般放在哪个位置
- SQL基础(五)-- 递归
- Flume日志收集系统架构详解--转
- QtGraphicView添加图元
- bootstrap中表格大小设置_bootstrap 设置table - td宽度问题
- how is SAP CDS view SADL load generated
- [渝粤教育] 中国地质大学 计算机文化基础 复习题
- 前端学习(1751):前端调试值之编辑源并同步到本地文件
- 曙光服务器优势,5大核心优势 探秘曙光Cloudview三大平台
- android u盘启动制作工具,多系统U盘启动盘制作工具(YUMI)
- 骨龄测试软件app_有哪些特别好用的 app 测试工具?
- vmware fusion个人版
- Java转换坐标系,GPS(WGS84)、百度(BD-09)、高德(GCJ-02)互转,一文搞懂坐标系、坐标转换
- 2021届秋招提前批——携程数据分析笔试
- 一个无边界区块链世界DIOT平行链数字物联网致力打造跨境电商 跨境支付 跨境地产
- 在Android应用中使用自定义证书,CER转BKS
- 记u盘内文件变为.lnk处理方法
- 【Tomcat简介】