正規表現では、すべての単語の間に余分なスペースを1つ追加しますか?

I have a sentence say

"This is my new program"

私はそれをに変換したい

"This  is  my  new  program"

つまり、単語ごとに余分なスペースが必要です。

Regexを.netで使用するにはどうすればよいですか?

これは一般的なものでなければなりません。単語の間にスペースの数が4の場合、例えば5とする必要があります。

0
@Shaw - 問題は、単語間のスペースの数が2または3または4またはnである可能性のある文があることです。私はいつも余分なスペースを1つ追加したい。たとえば、スペースが4つある場合は5にします。
追加された 著者 GuruC,
正規表現がなくても、 < code> String.Replace( ""、 "")
追加された 著者 Rowland Shaw,
それは実際には単語間の余分なスペースです。それが終わっていたら、 "プログラム"の後にスペースがあったはずだったし、それが前だったら "This"の前にスペースがあったはずです。
追加された 著者 Vatine,

4 答え

string newString = Regex.Replace(originalString, @"\s+", " $0");
2
追加された
yourString = Regex.Replace(yourString, "\ {1}", "  ")

これは、単一の(そして唯一の)空間の各インスタンスを2つの空間に置き換えます。

1
追加された
これは、すべてのインスタンスを2つのスペースで置き換えるので、私にとってはうまくいかないでしょう。私はそれらの言葉の間に余分なスペースを1つ追加したい!
追加された 著者 GuruC,

あなたはこれを使うことができます。私は@ルークHのソリューションは、あなたが手を触れないで残したいと思ういくつかの他のスペースを持っていない方が良いと思うが。

resultString = Regex.Replace(subjectString, @"(\b\w+\b)(?!$)", "$1 ");

説明:

"
(        # Match the regular expression below and capture its match into backreference number 1
   \b       # Assert position at a word boundary
   \w       # Match a single character that is a “word character” (letters, digits, etc.)
      +        # Between one and unlimited times, as many times as possible, giving back as needed (greedy)
   \b       # Assert position at a word boundary
)
(?!      # Assert that it is impossible to match the regex below starting at this position (negative lookahead)
   $        # Assert position at the end of the string (or before the line break at the end of the string, if any)
)
"
0
追加された

なぜ Regex ですか?文字列自体で Replace メソッドを使用してみませんか?

0
追加された
問題は、単語間のスペースの数が2または3または4またはnである可能性のある文が存在する可能性があることです。私はいつも余分なスペースを1つ追加したい。たとえば、スペースが4つある場合は5にします。
追加された 著者 GuruC,
@abhinav: [?\ s] [\ s] * より多くの空白文字。私はそれがあなたが意図したものだとは思わない。
追加された 著者 Alan Moore,
私の悪い、否定的な先読みをすることを意図した。うんざりした。ありがとう。
追加された 著者 abhinav,