3

使用 C#,我需要一些代码来使用正则表达式用管道字符 (|) 替换引号内的空格。问题是字符串可能包含多个带引号的表达式,我只想要引号内的空格

我尝试了一些事情,但我正在努力处理如何处理可能在引号内的可变数量的单词,等等。

以下是一些可能输入的示例以及所需的输出:

"word1 word2"
-> "word1|word2"

“word1 word2” word3 “word4 word5”
-> “word1|word2” word3 “word4|word5”

word1 "word2 word3"
-> word1 "word2|word3"

非常感谢任何帮助,希望我能了解正则表达式。

4

2 回答 2

8

使用正则表达式查找引号,并使用普通 Replace 替换空格:

str = Regex.Replace(str, @"""[^""]+""", m => m.Value.Replace(' ', '|'));
于 2012-06-22T01:11:30.243 回答
0

有一个有用的网站可以测试这样的东西,它叫做 reFiddle

http://refiddle.com

我要做的是使用这个

http://refiddle.com/288

/["][^"]+["]/g

要获取引号内的字符串,只需对这些返回的字符串进行替换,您就应该是金色的。

于 2012-06-22T01:17:05.177 回答