2017-12-22 72 views
0

私は正規表現をVBAワードで書こうとしていますが、2つのスペースの後に1つのスペースと数字が続くスペースが置き換えられます。これは私が思いついたものですが動作しません:どのようにこの正規表現をVBAの単語で記述しますか?

With ActiveDocument.Content.Find 
    .Text = "(\s\s\d)" 
    .Replacement.Text = "(\s\d)" 
    .Forward = True 
    .ClearFormatting 
    .Replacement.ClearFormatting 
    .MatchWildcards = True 

End With 
ActiveDocument.Content.Find.Execute Replace:=wdReplaceAll 

エラーメッセージは表示されず、私のドキュメントには何の影響もありません。

公式ドキュメントは次の場所にあります。

https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference

UPDATE

私は、高度な検索を使用してみましたし、交換し、私はuse wild cardsをチェックし、私は

Find: [0-9] 
Replace: [0-9] 
に入れます

Find:と[Space:1つの間に2つのスペースがありますtween Replace:and [しかし、それは 'hey 8'と 'hey [0-9]'の文字列を置き換えました。

あなたが探して交換する wildcardsを使用することができます
+0

注:リンク先のドキュメントは.Netドキュメントです。これはVBAとは関係ありません。 – YowE3K

+0

リンクしたドキュメントは、VBAとはまったく関係ありません。 VBAはVB.NetまたはVBまたはVBScriptではありません。彼らがすべてVBで始まったからといって、彼らが同じであるとは限りません。** cat **と** car **と** carrot **以上は** caで始まるので同じです**。 http://word.mvps.org/FAQs/General/UsingWildcards.htm –

答えて

1

検索:置き換え

SpaceSpace([0-9])([0-9])の前に二つのスペース):Space\1(シングルスペースと\1Regex

同様、()wildcardsでグループ化するために使用されます。 \1は、見つかったテキストの最初のグループを表します。この場合は数字です。

テキストの前に来るスペースの数が不明な場合は、Spacesという数字を検索するようにwordに指示するSpace{1,}を使用できます。

+0

を参照してくださいありがとう、私は本当に感謝しています。 –

関連する問題