. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 回复
 
主题工具
netsonic
 
netsonic 的头像
热心会员
 
资 料:
注册日期: Feb 2002
帖子: 14,103 声望值: 5
精华: 1,解答: 20
#1 旧 2019-06-28, 20:57:46 Icon17 【求助】正则表达式写法
netsonic 当前离线  

问题1:
每行行首都是下列形式数字章节号开头
1.1
1.1.1
1.1.2
1.2
1.2.1
1.2.2
1.3
以上章节号每个占据一行,章节号后面均有一个空格字符,然后是数量不定的英文或中文字符或数字,最后两个字符是tab空格和位数不限的数字。

章节号里有1个小数点的,行首加1个tab空格;2个小数点的,行首加2个tab空格,以此类推。

问题2:
每行行首大多数是以问题1的数字开头,但有部分是以英文或汉字开头,怎么吧以英文或汉字开始的行合并到上一行去?
上传的附件
文件类型: txt 1.txt (393 字节, 15 次查看)

此帖于 2019-06-28 21:13:18 被 netsonic 编辑. .


出售 JBL RF610, 支持蓝牙立体声 | iGo蓝牙鼠标
回复时引用此帖
gongxiang
 
gongxiang 的头像
热心会员
 
资 料:
注册日期: May 2012
帖子: 1,627 声望值: 6
精华: 0,解答: 20
#2 旧 2019-06-28, 21:00:58 默认
gongxiang 当前离线  

看着这描述真累,还不如直接上文章
回复时引用此帖
netsonic
 
netsonic 的头像
热心会员
 
资 料:
注册日期: Feb 2002
帖子: 14,103 声望值: 5
精华: 1,解答: 20
#3 旧 2019-06-28, 21:13:00 默认
netsonic 当前离线  

引用:
作者: gongxiang 查看帖子
看着这描述真累,还不如直接上文章
在一楼附件里。
回复时引用此帖
gongxiang
 
gongxiang 的头像
热心会员
 
资 料:
注册日期: May 2012
帖子: 1,627 声望值: 6
精华: 0,解答: 20
#4 旧 2019-06-28, 21:23:24 默认
gongxiang 当前离线  

正确的写法不是项目符号么
通过格式来控制
回复时引用此帖
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,247 声望值: 5
精华: 0,解答: 128
#5 旧 2019-06-28, 23:30:43 默认
MacOS 当前离线  

2比较好做,不太严格的话,这样应该能处理,但数字头不识别
代码:
^((\d+\.)*\d+ .*)\n([\D\S])
\1\3
1一时间想不出什么好的方法,要么是笨办法,列举条件,另外就是这种有点暴力的做法
第一步,把所有符合的章节头全加远超需求的制表符
代码:
^((\d+\.)*\d+ )
\t\t\t\t\t\t\t\t\t\t\1
第二步,把\t……\d\.当成一种递归,识别出正确的数目,多余的\t不保留
代码:
^\t+((\t(?2)*\d+\.)\d+ )
\1
需要有支持递归的正则编辑,SUBLIME测试


HIDDEN MESSAGE LEVEL 3
14863 159357 789 159357 3245687 3684
回复时引用此帖
crazytang
 
crazytang 的头像
超级会员
 
资 料:
注册日期: Feb 2001
帖子: 1,731 声望值: 3
精华: 0,解答: 5
#6 旧 2019-06-29, 11:51:26 默认
crazytang 当前离线  

没有简洁的方式,除非你写程序来判断,所以只能一批批来处理

问题1:
^(\d+\.\d+\s+.+)$ => \t$1
^(\d+\.\d+\.\d+\s+.+)$ => \t\t$1
^(\d+\.\d+\.\d+\.\d+\s+.+)$ => \t\t\t$1

问题2:
先将第二行是非数字的分行符去掉,然后用问题1的方式来替换
\n(\D.+)$ => $1 //
回复时引用此帖
netsonic
 
netsonic 的头像
热心会员
 
资 料:
注册日期: Feb 2002
帖子: 14,103 声望值: 5
精华: 1,解答: 20
#7 旧 2019-06-29, 21:06:47 默认
netsonic 当前离线  

感谢楼上两位,但第二个问题两位的代码都不起作用

测试环境:akelpad。
回复时引用此帖
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,247 声望值: 5
精华: 0,解答: 128
#8 旧 2019-06-30, 09:08:31 默认
MacOS 当前离线  

换,软件对正则识别很奇怪,加*却没有贪婪
回复时引用此帖
发表新主题 回复

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 03:57:10.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号