正则表达式在'之间找到一个或多个空格

时间:2018-10-16 06:17:04

标签: regex

我正在尝试在两个'之间找到一个或多个空格。

这就是我得到的,但是它没有在另一个后面找到一个空格。

('[\S]+)( )([\S]+')

编辑: 抱歉,我的问题不清楚!

输入例如:"this 'is a test ' for stackoverflow.

(在此示例中,替换字符为“ x”)

输出:"this 'isxxaxtestx' for stackoverflow.

('[\S]+)( )+([\S]+') 

此正则表达式只需要查找多个匹配项,但我不知道如何。

2 个答案:

答案 0 :(得分:2)

您的要求只能通过可变宽度的后向正则表达式模式来实现,只有少数正则表达式引擎(Perl,Python的第三方regex模块,Chrome的Javascript等)才支持这种模式:

(?<='[^']*) (?=[^']*')

演示:https://regex101.com/r/al6FTW/2

关键是在空格前使用正向后退(?<='[^']*)模式,以确保有一个单引号,后跟零个或多个非单引号字符,直到空格为止,然后使用正号在空格后进行前瞻模式(?=[^']*'),以确保空格后有一个单引号,并且中间有零个或多个非单引号。

答案 1 :(得分:0)

这是我从您的问题中了解的 您需要允许在引号之间使用1个空格或更多空格的字符串

正则表达式应为

   ('[\s]+)([\S)([\s]+')

因为\ S表示它不应为空格,而\ s表示它应为空格。注意大写和小写字母s。

Tested as