select 引号中所有空格的正则表达式?
Regular expression to select all whitespace that IS in quotes?
例如:
string text = 'some text "and some more" and some other "this is a second group" okay the end';
.
我想捕获引号之间的所有空格。最终目标是用逗号替换这些空格。
最终目标,例如:
'some text "and,some,more" and some other "this,is,a,second,group" okay the end'
例如,这将满足我在 javascript:
中的要求
text.replace(/(["]).*?/gm, function ([=12=]) {
return [=12=].replace(/\s/g, ',');
});
不幸的是,我唯一可用的工具是 textmate 的 find/replace 功能。
我找到了另一个与我需要的相反的东西,但使用了我需要的一行:
text.replace(/\s+(?=([^"]*"[^"]*")*[^"]*$)/gm, ',');
谢谢!
您可以使用
\s+(?=(?:(?:[^"]*"){2})*[^"]*"[^"]*$)
\s+
匹配 1 个或多个后跟奇数个双引号的空格。
详情: 空白匹配部分很简单,正lookahead需要
(?:(?:[^"]*"){2})*
- 零个或多个序列的 2 个序列匹配除 "
以外的 0+ 个字符,然后是 "
(0+ "..."
s)
[^"]*"[^"]*
- "
以外的 0+ 个字符后跟 "
,然后再跟 "
以外的 0+ 个字符(奇数引号必须在当前匹配的空格的右边)
$
- 字符串结尾。
例如:
string text = 'some text "and some more" and some other "this is a second group" okay the end';
.
我想捕获引号之间的所有空格。最终目标是用逗号替换这些空格。
最终目标,例如:
'some text "and,some,more" and some other "this,is,a,second,group" okay the end'
例如,这将满足我在 javascript:
中的要求text.replace(/(["]).*?/gm, function ([=12=]) {
return [=12=].replace(/\s/g, ',');
});
不幸的是,我唯一可用的工具是 textmate 的 find/replace 功能。
我找到了另一个与我需要的相反的东西,但使用了我需要的一行:
text.replace(/\s+(?=([^"]*"[^"]*")*[^"]*$)/gm, ',');
谢谢!
您可以使用
\s+(?=(?:(?:[^"]*"){2})*[^"]*"[^"]*$)
\s+
匹配 1 个或多个后跟奇数个双引号的空格。
详情: 空白匹配部分很简单,正lookahead需要
(?:(?:[^"]*"){2})*
- 零个或多个序列的 2 个序列匹配除"
以外的 0+ 个字符,然后是"
(0+"..."
s)[^"]*"[^"]*
-"
以外的 0+ 个字符后跟"
,然后再跟"
以外的 0+ 个字符(奇数引号必须在当前匹配的空格的右边)$
- 字符串结尾。