4

ワードプロセッサプログラムは、検索および置換機能を備えています。ただし、部分的な単語(単語内にある文字の組み合わせ)も置き換えられます。これを修正するには、余分なスペースを削除し、split関数を使用して、区切り文字として「」を使用して文字列を単語の配列に変更する予定です。

ただし、配列を検索し、適切な単語を置き換えて、配列をスペースで区切られた文字列に戻すと、ユーザーの元のフォーマットが失われます。たとえば、元の文字列が「これは文です」だったとします。ユーザーが「a」を「the」に置き換えたい場合、出力は「Thisisthesentence。」になります。スペースは追加されません。

したがって、私の質問は、Visual Basicでユーザーの書式設定(余分なスペース)を保持したまま、単語全体を検索して置換する方法があるかどうかです。

4

3 に答える 3

4

正規表現を使用するのはどうですか?

正規表現では、コード\bは単語の境界であるため、たとえば、正規表現は、 aが単語全体である場合にのみ \ba\b一致します。

たとえば、コードは次のようになります。

Dim strPattern As String: strPattern = "\ba\b"
Dim regex As New RegExp

regex.Global = True
regex.Pattern = strPattern
result = regex.Replace("This is a sentence.", "the")
于 2012-10-22T21:40:47.603 に答える
1

フォーマットが失われるのはなぜですか?テキストをスペースで分割する場合は、配列からテキストを構成するときに、各要素の後にスペースを付けるだけです。ただし、スペースではなく句読点で終わる単語も考慮する必要があります。

「これは簡単な文ですよね?」では、「えっ」は「えっ?」として保存されます。スペースで分割するからです。したがって、句読点に適した複雑な式をプログラムするか、単に正規表現を使用する必要があります。準備してください-正規表現は...トリッキーです。

于 2012-10-24T21:21:32.310 に答える
1

最初に余分なスペースを削除せずに分割機能を使用すると、配列に空のアイテムが含まれるため、余分なスペースが失われることはなく、元の形式でドキュメントをそのまま再構築できます。

于 2012-10-26T03:03:46.753 に答える