Regex-从字符第N次出现到字符串末尾的匹配
Regex - match from N-th occurence of a character till end of string
这里有点疯狂:)因为这一定很简单,我就是无法破解它。
示例:
HTZ_2015_CS_SS5_cncenter_1020x200_AS2_10K.html
HTZ_2015_CS_SS5_cncenter_1020x200_AS2_10K.swf
HTZ_2015_CS_SS5_cncenter_1500x1000_160K_w1020.jpg
- 匹配第6个"_"(下划线字符),选择它和后面的所有字符,直到字符串结束
- 不替换(基本上是从第6个下划线到字符串末尾删除)
我使用Sublime Text进行所有文本编辑,并具有查找/替换功能,但如有必要,我可以使用一些在线工具(有什么建议吗?)。正如你可能已经猜到的,这些是我们经常需要修改的横幅文件名,一次修改数百个。
非常感谢!
附言:我可以写简单的JS,所以如果必须的话,这可能也是一个选项。
^((?:[^_]*_){5}[^_]*).*$
你可以试试这个。替换为$1
或'1
。请参阅演示。
https://regex101.com/r/sJ9gM7/36
如果确定字符串中至少有6个_:
src.match (/^((?:[^_]*_){5}[^_]*)(_[^]*)$/)[1]
'HTZ_2015_CS_SS5_cncenter_1020x200_AS2_1K.html'.match(/^((?:[^]*){5}[^]*)([^]*)$/)[1]='HTZx2015_CS_SS5_cncenter_1020x200'
否则使用:
(src.match (/^((?:[^_]*_){5}[^_]*)(_[^]*)$/) || [,src])[1]
我认为您需要一个类似Perl的正则表达式用于Sublime text:
'b(?:[^_]*_){5}[^_]*'K(.*)'b
这是一个演示。
它捕获:
_AS2_10K.html
_AS2_10K.swf
_160K_w1020.jpg
相关文章:
- 如何将字符串拆分为字符,但在javascript中保留空格
- 如何显示字符串中最多 200 个字符
- 我想在Javascript中探索类似C语言的字符串的整个字符
- 如何用jquery替换字符串中可能变化的字符
- 通过跳过拆分字符在 javascript 中拆分字符串
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 字符串替换-不支持格式字符'}'
- 到UpperCase字符串Javascript中的特定字符索引
- 用类javascript包装span标记中字符串中的字符索引
- 将字符串分组为n个字符的块,并应用替换
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- 如何从键Code;中获取字符串/字符值;
- 检查值是否包含字符串字符
- JavaScript字符串字符操作
- 如果数组中的字符串不匹配,请从字符串中删除字符串字符
- Javascript Lingo游戏-字符串字符等于另一个字符串字符
- jQuery替换字符串字符的方法
- Javascript字符串字符检查
- Javascript替换字符串字符
- Javascript的变化与重复(组合)缺失的字符串字符