. : : ClassiClub ForuM : : .

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

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



发表新主题 回复
 
主题工具
netsonic
 
netsonic 的头像
热心会员
 
资 料:
注册日期: Feb 2002
帖子: 13,998 声望值: 5
精华: 1,解答: 20
#1 旧 2019-08-23, 22:11:48 Icon17 已解答: 【求助】如何用正则匹配多个相同字符中的某一个?
netsonic 当前离线  

比如:A_B_C_D_E.mp4
如何匹配倒数第二个“_”?


出售 JBL RF610, 支持蓝牙立体声 | iGo蓝牙鼠标
回复时引用此帖
最佳解答为:dodowolf
TC这么用
namejm
 
namejm 的头像
超级会员
 
资 料:
注册日期: Apr 2009
帖子: 1,248 声望值: 3
精华: 18,解答: 76
#2 旧 2019-08-23, 23:01:34 默认
namejm 当前离线  

.+(_)[^_]*_[^_]*$


TotalCommder、EveryThing、batch、AutoHotKey、EverEdit
精通Word、Excel、PPT的安装与卸载
熟练掌握VB、C++、SQL的缩写
回复时引用此帖
netsonic
 
netsonic 的头像
热心会员
 
资 料:
注册日期: Feb 2002
帖子: 13,998 声望值: 5
精华: 1,解答: 20
#3 旧 2019-08-24, 10:57:12 默认
netsonic 当前离线  

在TC里好像不行
上传的图像
文件类型: png 1.png (54.3 KB, 73 次查看)
回复时引用此帖
namejm
 
namejm 的头像
超级会员
 
资 料:
注册日期: Apr 2009
帖子: 1,248 声望值: 3
精华: 18,解答: 76
#4 旧 2019-08-24, 12:18:40 默认
namejm 当前离线  

正则表达式如果只是“匹配”某个字符
2楼的表达式是没有任何问题的,括号对里能匹配到倒数第二个 _
但是你这里用正则表达式是为了改名
只要求 “匹配” 是远远不够的
你还得更进一步明确要保留什么、删除什么、替换掉什么
回复时引用此帖
netsonic
 
netsonic 的头像
热心会员
 
资 料:
注册日期: Feb 2002
帖子: 13,998 声望值: 5
精华: 1,解答: 20
#5 旧 2019-08-24, 12:54:24 默认
netsonic 当前离线  

引用:
作者: namejm 查看帖子
正则表达式如果只是“匹配”某个字符
2楼的表达式是没有任何问题的,括号对里能匹配到倒数第二个 _
但是你这里用正则表达式是为了改名
只要求 “匹配” 是远远不够的
你还......
"替换"里是空的,表示删除匹配到的对象,但结果把整个文件名以及后缀都删了
回复时引用此帖
dodowolf
 
dodowolf 的头像
热心会员
 
资 料:
注册日期: Sep 2002
帖子: 2,995 声望值: 5
精华: 0,解答: 10
#6 旧 2019-08-24, 13:56:34 默认
dodowolf 当前离线  

TC这么用
上传的图像
文件类型: png 2019-08-24_13-55-42.png (26.2 KB, 70 次查看)
回复时引用此帖
namejm
 
namejm 的头像
超级会员
 
资 料:
注册日期: Apr 2009
帖子: 1,248 声望值: 3
精华: 18,解答: 76
#7 旧 2019-08-24, 18:12:40 默认
namejm 当前离线  

关于验证正则表达式是不是匹配到了某个字符串
楼主可能存在一些误解
.+(_)[^_]*_[^_]*$ 这个正则表达式中
虽然整个表达式可能匹配了整个字符串,但是,其中的括号对匹配的是字符串中倒数第二个 _
你不能直接在 替换 中不做任何设置就期望能把倒数第二个 _ 提取出来
需要用 $1、$2之类的后向引用才能真正提取到
正则表达式是否正确匹配,不能简单地通过把 删除 操作置空来验证
如果要通过 删除 操作来验证,你需要进一步明确需要分别保留、替换、删除哪部分子字符串
然后进一步调整这个正则表达式原型
就像6楼演示的那样
回复时引用此帖
netsonic
 
netsonic 的头像
热心会员
 
资 料:
注册日期: Feb 2002
帖子: 13,998 声望值: 5
精华: 1,解答: 20
#8 旧 2019-08-24, 21:11:41 默认
netsonic 当前离线  

感谢楼上各位解答。
回复时引用此帖
llyang
 
llyang 的头像
热心会员
 
资 料:
注册日期: Mar 2000
帖子: 2,357 声望值: 4
精华: 0,解答: 6
#9 旧 2019-08-25, 01:16:33 默认
llyang 当前离线  

删除匹配倒数第二个_ //namejm查找是关键,替换如下:
UE
查找
(.+)[_]([^_]*_[^_]*$)
替换
$1$2


回复时引用此帖
发表新主题 回复

主题工具

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


所有时间均为北京时间, 现在的时间是 15:31:33.

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

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