问题描述
使用C#,我需要一些代码来使用正则表达式用引号字符(|)替换引号内的空格。问题是字符串可能包含多个带引号的表达式,而 我只想要引号内 的空格。
Using C#, I need a some code to use regular expressions to replace spaces inside of quotes with a pipe character (|). problem is that the string could contain multiple quoted expressions and I only want the spaces inside of quotes.
尝试了几件事,但我正在努力处理可变内的可变数字的话,除了别的以外。
I tried a few things but I am struggling with how to handle the variable number of words that could be inside of quotes, amongst other things.
这里有一些例子,输入和所需输出:
Here is some examples of what may be input, and the required output:
word1 word2
- >word1 | word2
"word1 word2"
-> "word1|word2"
word1 word2word3word4 word5
- >word1 | word2word3word4 | word5
"word1 word2" word3 "word4 word5"
-> "word1|word2" word3 "word4|word5"
word1word2 word3
- > word1word2 | word3
word1 "word2 word3"
-> word1 "word2|word3"
任何帮助非常感谢,希望我将了解正则表达式。 / p>
Any help greatly appreciated, and hopefully I will learn about regular expressions.
推荐答案
使用常规expresion查找引号,并使用替换替换空格:
Use a regular expresion to find the quotes, and a plain Replace to replace the spaces:
str = Regex.Replace(str, @"""[^""]+""", m => m.Value.Replace(' ', '|'));
这篇关于需要C#正则表达式替换字符串里的空格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!