大文字の前にスペースを挿入する
大文字と小文字を含むテキストを扱う場合、スペースを追加して単語を区切ることが望ましいことがよくあります。大文字の前に。これにより、可読性が向上し、さまざまな単語を区別しやすくなります。
正規表現メソッド
一般的なアプローチの 1 つは、正規表現を使用して大文字を検索して置換することです。先頭に小文字が付きます。次の正規表現は、前に小文字が続くすべての大文字と一致します:
[A-Z]
これらの大文字の前にスペースを挿入するには、次の置換パターンを使用できます:
\s<pre class="brush:php;toolbar:false">System.Text.RegularExpressions.Regex.Replace(value, "[A-Z]", "\s<pre class="brush:php;toolbar:false">string AddSpacesToSentence(string text, bool preserveAcronyms) { if (string.IsNullOrWhiteSpace(text)) return string.Empty; StringBuilder newText = new StringBuilder(text.Length * 2); newText.Append(text[0]); for (int i = 1; i < text.Length; i++) { if (char.IsUpper(text[i])) if ((text[i - 1] != ' ' && !char.IsUpper(text[i - 1])) || (preserveAcronyms && char.IsUpper(text[i - 1]) && i < text.Length - 1 && !char.IsUpper(text[i + 1]))) newText.Append(' '); newText.Append(text[i]); } return newText.ToString(); }
This置換パターンは s 文字クラスを使用して、一致する大文字の前にスペースを挿入します。一方、$0 は一致する部分文字列を表します。この正規表現を使用した例を次に示します。
手動メソッド
正規表現は効果的ですが、パフォーマンスの点で複雑でコストがかかる可能性もあります。別の方法は、文字列を 1 文字ずつ手動で繰り返し、必要に応じてスペースを挿入することです。次のコード スニペットは、このメソッドを示しています。
このコードは、文字列内の各文字を反復処理し、それが大文字であるかどうかを確認します。そうであり、その前に小文字がある場合 (preserveAcronyms パラメーターが true に設定されており、前の文字も大文字でない限り)、スペースが挿入されます。
パフォーマンスに関する考慮事項
正規表現による方法は、特に大きな文字列の場合、手動による方法よりも大幅に時間がかかる可能性があります。ただし、手動による方法はより複雑で、一部の開発者にとっては読みにくい場合があります。最終的に、これら 2 つの方法の間で最適な選択は、特定のプロジェクトのパフォーマンス要件と読みやすさの好みによって決まります。
以上が文字列の大文字の前にスペースを効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。