吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 704|回复: 10
收起左侧

[求助] 求教一个正则式的代码写法。

[复制链接]
chengong17 发表于 2022-7-29 12:43
本人是一个工程男,没有什么编程基础,近来在quicker上搜到一个功能,希望能把它功能延伸一下自己用,但是一些文件名的识别又不很会写,研究了半天的正则式无果,就在这里提出请教了。
quicker上的软件原来的用法是根据文件名自动分类归入文件夹,但是功能有一定的局限。
我们设计院出图有严格的文件名标准,按楼栋、专业、图号、图名、图幅这样的顺序用下划线连起来,如“2号楼_建施_05_四层平面图屋面层平面图_A1”。
请问我需要把仅把楼栋号提取出来这个正则式要如何写?要把志业提取出来要如何写?要把图幅提出来要怎么写?
还请各位不吝赐教,非常感谢。

文件名

文件名

原文件

原文件

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

颜师古都 发表于 2022-7-29 15:00
他用下划线分的很清楚了   用split分割下划线才是最好的
Incoparab 发表于 2022-7-29 15:12
Liona 发表于 2022-7-29 15:13


这个小括号内的叫做原子组,可以使用\1获取到

希望能帮到你
lhlking 发表于 2022-7-29 15:49
要是会一点编程会很方便获取文件名之后,用split把_进行数组分割,然后再取固定数组的值就行了。正则表达式应该也可以实现
hanzj06 发表于 2022-7-29 16:23
本帖最后由 hanzj06 于 2022-7-29 16:31 编辑

[Python] 纯文本查看 复制代码
import re
str1 = "2号楼_建施_05_四层平面图屋面层平面图_A1"
res = re.findall('(\d+)号楼_(.+)_(.+)_(.+)_(.+)', str1)
for item in res[0]:
    print(item)

[Python] 纯文本查看 复制代码
2
建施
05
四层平面图屋面层平面图
A1

Process finished with exit code 0

(\d+)号楼_(.+)_(.+)_(.+)_(.+)
括号里是你要匹配并获取的值,其他的可以用不变字符替换
狐白本白 发表于 2022-7-29 16:31
确实 下划线分的很清楚了split才是最方便的
jllovecy 发表于 2022-7-29 16:53
百度一个批量获取文件名的bat,然后获取的数据放在Excel中,用 下划线 分列,很简单的
~零度 发表于 2022-7-29 17:25
使用“正向肯定预查”和“反向肯定预查”两种语法规则即可实现(https://www.runoob.com/regexp/regexp-metachar.html)
源文本:2号楼_建施_07_8轴-1轴立面图D轴-A轴立面图_A1
模式:.+(?=_.+_.+_.+_.+)  匹配结果:2号楼
模式:(?<=.+_).+(?=_.+_.+_.+) 匹配结果:建施
模式:(?<=.+_.+_).+(?=_.+_.+) 匹配结果:07
模式:(?<=.+_.+_.+_).+(?=_.+) 匹配结果:8轴-1轴立面图D轴-A轴立面图
模式:(?<=.+_.+_.+_.+_).+ 匹配结果:A1
 楼主| chengong17 发表于 2022-7-30 07:30
本帖最后由 chengong17 于 2022-7-30 07:33 编辑
~零度 发表于 2022-7-29 17:25
使用“正向肯定预查”和“反向肯定预查”两种语法规则即可实现(https://www.runoob.com/regexp/regexp-met ...

多谢,这个表达式是一个很好的思路。我再深入学习一下。那我再问一下,如果我的命名里头有很多_.+,那我要如何进行定位以下两种情况
一种是第二个下划至第三个下划之间的内容
一种是倒数第二个下载至倒数第三个下划之间的内容
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 09:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表