需要C#正则表达式来替换字符串中的空格

需要C#正则表达式来替换字符串中的空格,c#,regex,C#,Regex,使用C#,我需要一些代码来使用正则表达式将引号内的空格替换为管道字符(|)。问题是字符串可能包含多个带引号的表达式,我只需要引号中的空格 我尝试了一些方法,但我正在努力解决如何处理引号中的可变字数问题 以下是一些可能输入的内容和所需输出的示例: “单词1单词2” ->“字1 |字2” “word1 word2”word3“word4 word5” ->“word1 | word2”word3“word4 | word5” word1“word2 word3” ->word1“word2 | wo

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

我尝试了一些方法,但我正在努力解决如何处理引号中的可变字数问题

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

“单词1单词2”
->“字1 |字2”

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

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


非常感谢您的帮助,希望我能学习正则表达式。

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

str = Regex.Replace(str, @"""[^""]+""", m => m.Value.Replace(' ', '|'));

有一个很有用的webiste来测试这样的东西,叫做refidle

我要做的就是用这个

/[“][^”]+[“]/g


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

您可以在引号内转义引号吗?它需要是正则表达式吗?我认为简单的循环可以更清晰地完成此操作。@dasblinkenlight-完全同意。每当我必须处理引号内字符串的标记化时循环总是更容易调试和以后阅读。它只有几行代码,而且性能也会更好。哦,你比我强。你为什么在“不匹配”语句中使用两个引号?我想你是想使用\。我相信“”是双引号的VB转义序列。@JonSenchyna没有。他使用了
@
@DelusionAllLogic:这就是在@delimited字符串中转义引号的方法。你可以用字符串
“\”[^\“]+\”
来代替。@Guffa我还是不明白,你的另一个对我来说很合适,但我只是不明白其中的两个,我可能需要玩a,但更多的是用c来获得它。。。