匹配正则表达式直到第一个空格

4
我需要填充商店的图片,并提供了一些以以下格式命名的图片文件夹,例如BRL0368 Side.jpg5510 Dura Guard Carpet.jpg。我希望将它们全部裁剪下来,以便可以在Excel中匹配零件号,例如"BRL0368.jpg""5510.jpg"
我有一个名为正则表达式重命名器的工具,可以执行正则表达式匹配和替换值 - 它将递归遍历文件夹等并批量重命名文件。
但是,目前我对正则表达式没有太多经验,所以有点困惑 - 我尝试了许多不同的选项,但没有太大的运气。
请问如何获取第一个部分(字母和数字),直到第一个空格,并删除其余部分?
这就是我一直在尝试的代码 ([^\s]+) - 我还尝试过\w 等方法。

\w+ 应该适用于您。您想要使用哪种语言解决方案? - anubhava
感谢大家的帮助 - 我可以看到更好地理解正则表达式将为我加速很多事情! - mro
2个回答

10

可能取决于使用的语言,但这应该有效:

/^[^\s]+/
为了捕获第一个单词和最后一个单词(即扩展名),您可以使用以下表达式:
/(^[^\s]+).*?(\.\w+)$/

这里有一个JavaScript演示,以澄清事情的疑惑:http://jsfiddle.net/eDB2z/1/


感谢提供演示,这对正则表达式工具页面非常有帮助。他们提供了一个类似的示例: 匹配模式:^img00(\d+)_sshot(_thumbnail)? 替换模式:tutorial$2.$1 - mro

1
这就是你需要的: \w*(?= )


嗨 - 这似乎有些效果,唯一的问题是它返回说;5510 dura guard carpet.jpg(返回 =“Dura Gaurd Carpet.jpg”)- 我想要的是说“5510.jpg” - 我尝试在开头使用 ^ 匹配第一个单词 - 如果我理解正确? - mro
在你的问题中,你没有提到你需要去掉“.jpg”部分 - Ofer Zelig
顺便提一下,您可以运行我的正则表达式,并以编程方式仅获取第一个匹配项和文件扩展名。 - Ofer Zelig
抱歉 - 有趣的是 - 当我将它放入^(\w*(?= )),然后在替换模式中放置$1.时 - 它会分割单词,但仍无法去除不匹配的(5510. dura guard carpet.jpg) - 看起来匹配模式是有效的,只是替换/或者我使用工具的方式有问题? - mro
谢谢你的所有帮助,这让我更好地理解了正则表达式。 - mro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接