首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex在单个qoutes之间查找空格并用下划线替换

Regex在单个qoutes之间查找空格并用下划线替换
EN

Stack Overflow用户
提问于 2017-11-02 01:03:32
回答 1查看 1.2K关注 0票数 5

我已经导出了一个数据库表。我需要用空格替换图像文件名,并希望使用notepad++和regex。我有:

代码语言:javascript
复制
'data/green tea powder.jpg'
'data/prod_img/lumina herbal shampoo.JPG'
'data/ALL GREEN HERBS.jpeg'
'data/prod_img/PSORIASIS KIT (640x530) (2).jpg'

需要让它们看起来像这样:

代码语言:javascript
复制
'data/green_tea_powder.jpg'
'data/prod_img/lumina_herbal_shampoo.JPG'
'data/ALL_GREEN_HERBS.jpeg'
'data/prod_img/PSORIASIS_KIT_(640x530)_(2).jpg'

我只想改变引号之间的空格(我不想改变大写)。更具体地说,我想替换“data/ and”之间的任何和所有空格,因为DB中的引号之间还有其他空格,例如:

代码语言:javascript
复制
'data/ REPLACE ANY SPACE HERE '

我发现了这个:

代码语言:javascript
复制
\s(?!(?:[^']*'[^']*')*[^']*$)

但是还有其他地方在引号之间有空格,所以我想搜索data/,而不仅仅是一个单引号,但我不知道如何搜索。我尝试过\s(?!(?:[^'data\/]*'[^']*')*[^']*$),但它没有工作,而且我对regex还不太熟悉,无法做到这一点。

数据库中整行的一个例子是:

代码语言:javascript
复制
(712, 'GRTE-P', '', 'data/green tea powder.jpg', '2014-03-12 22:52:03'),

我不想替换时间中的空格和行尾的数据标记,只想替换图像文件名。

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-02 06:35:37

您必须使用基于\G的模式来确保匹配是连续的。

搜索:(?:\G(?!^)|'data/)[^' ]*\K[ ]

替换:_

第一个匹配使用交替的第二个分支,然后下一个匹配是连续的,并使用第一个分支。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47065992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档