46

ハイフンで区切られた姓の文字列を作成しています。空白がそこに引っかかることがあります。最終結果からすべての空白を削除する必要があります。

作業するサンプル文字列:

アンダーソン・リード・スミス

最終的に次のようになる必要があります (アンダーソンの後にスペースはありません):

アンダーソン・リード・スミス

姓の文字列は、文字列変数 LastName にあります。

私は正規表現を使用しています:

Regex.Replace(LastName, @"[\s+]", "");

この結果は次のとおりです。

アンダーソン - リード - スミス。

私も試しました:

Regex.Replace(LastName, @"\s+", "");

Regex.Replace(LastName, @"\s", "");

私は何を間違っていますか?

4

8 に答える 8

138

そのような単純なもののRegEx使用の代わりに:Replace

LastName = LastName.Replace(" ", String.Empty);
于 2013-05-02T19:27:29.360 に答える
64

Regex.Replace does not modify its first argument (recall that strings are immutable in .NET) so the call

Regex.Replace(LastName, @"\s+", "");

leaves the LastName string unchanged. You need to call it like this:

LastName = Regex.Replace(LastName, @"\s+", "");

All three of your regular expressions would have worked. However, the first regex would remove all plus characters as well, which I imagine would be unintentional.

于 2013-05-02T19:35:51.480 に答える
1

REGEX を使用すると、文字列内のスペースを削除できます。

次の名前空間は必須です。

using System.Text.RegularExpressions;

構文:

Regex.Replace(text, @"\s", "")
于 2019-06-03T10:15:44.470 に答える
-2

以下は、ファイル名の空白を特定の URL に置き換えるコードです。また、"~" の代わりに string.empty を使用して同じ空白を削除することもできます。

  if (!string.IsNullOrEmpty(url))
          {
           string origFileName = Path.GetFileName(url);
           string modiFileName = origFileName.Trim().Replace(" ", "~");
           url = url.Replace(origFileName , modiFileName );
          }
          return url;
于 2016-12-22T08:37:11.120 に答える