Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Regex-从字符第N次出现到字符串结尾的匹配_Javascript_Regex_Sublimetext2 - Fatal编程技术网

Javascript Regex-从字符第N次出现到字符串结尾的匹配

Javascript Regex-从字符第N次出现到字符串结尾的匹配,javascript,regex,sublimetext2,Javascript,Regex,Sublimetext2,这里有点疯狂:)因为这一定很简单,我就是无法破解 示例: 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个“\”(下划线字符),选择它和后面的所有内容,直到字符串结束 替换为nothing(基本上从第6个下划线删除到字符串末尾) 我使用Subli

这里有点疯狂:)因为这一定很简单,我就是无法破解

示例:

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个“\”(下划线字符),选择它和后面的所有内容,直到字符串结束
  • 替换为nothing(基本上从第6个下划线删除到字符串末尾)
我使用Sublime文本进行所有文本编辑,具有查找/替换功能,但如有必要,我可以使用一些在线工具(有任何建议?)。您可能已经猜到了,这些是我们经常需要修改的标题文件名,一次修改数百个

非常感谢

另外,我可以写简单的JS,所以如果必须的话,也许这也是一个选项

^((?:[^_]*_){5}[^_]*).*$
您可以尝试此操作。替换为
$1
\1
。请参阅演示


我认为您需要一个类似Perl的正则表达式来生成崇高的文本:

\b(?:[^_]*_){5}[^_]*\K(.*)\b
这是一本书

它包括:

_AS2_10K.html
_AS2_10K.swf
_160K_w1020.jpg

如果您确定字符串中至少有6个字符:

   src.match (/^((?:[^_]*_){5}[^_]*)(_[^]*)$/)[1]
“HTZ_2015_CS_SS5_cncenter_1020x200_AS2_10K.html”。匹配(/^((?:[^]*){5}[^]*)([^]*)$/)[1]=“HTZ_2015_CS_SS5_cncenter_1020x200”

否则,请使用:

  (src.match (/^((?:[^_]*_){5}[^_]*)(_[^]*)$/) || [,src])[1]

嘿,谢谢你的回复,但是-我需要选择第6条下划线和后面的所有内容。这一个选择第7个(最后一个)下划线之后的所有内容,并去掉下划线。这一个更好:),但仍然不能捕获第6个下划线。选择在下划线之后开始。(在SUblime中不起作用)啊哈,对不起,我在SUblime中试过了,但没用@regex101它可以工作。谢谢@Alex Starbuck您是否使用
m
多行
flagTx作为答案!“src.match”…然后是“| |[,src][1]”这部分是什么?我正在使用Regex101测试仪并在那里进行替换。完成后,我将值从“替换”面板复制到我的txt文件中。
src.match
如果匹配成功,则返回数组;如果不匹配,则返回null,
|[,src]
将在不匹配的情况下调用,并返回一个数组,其中元素1是原始字符串。因此,如果不匹配,整个JavaScript表达式将有效地进行替换或不执行任何操作。Regex101将不允许您对此进行测试。我将对此进行修改。