0

Microsoft Word内のVBAで、浮動小数点数の任意の組み合わせを正規表現と一致させようとしています。

例:

<text="">
<text="1">
<text="2">
<text="3">
<text="3.5">
<text="4">
<text="44">

私は次のパターンを試しました:

regex.Pattern = "<text=" & Chr(34) & "\d*\.*\d*" & Chr(34) & ">"
regex.Pattern = "<text=" & Chr(34) & "[\d\.]*" & Chr(34) & ">"

興味深いのは、これらのパターンのどちらも 44 にも一致しないということです。

4

2 に答える 2

0

正規表現テスターサイトから、

正の整数 ---^\d+$
負の整数 ---^-\d+$
整数 ---^-{0,1}\d+$
正の数 ---^\d*\.{0,1}\d+$
負の数 ---^-\d*\.{0,1}\d+$
正の数または負の数 -^-{0,1}\d*\.{0,1}\d+$

空の結果が有効であることをテストし、すべての正の数を想定すると、最終的には次のようになります

regex.Pattern = "<text=" & Chr(34) & "\d*\.{0,1}\d*" & Chr(34) & ">"
于 2012-11-14T16:16:25.183 に答える
0

分解してみましょう。浮動小数点数には、整数と小数の 2 つの部分があります。フォーマットにはいくつかの選択肢があります。

かなり一般的な表記のパターンを次に示します。

regex.Pattern = "<text=" & Chr(34) & "(-?\d+(\.\d+)?)?" & Chr(34) & ">"

いくつかの選択肢:

  • 整数部分の省略をサポートしますか? (例: '.001')最初の数値一致の代わりに
    使用:*+(-?\d*(\.\d+)?)?

  • 先行ゼロをサポートしますか? (例:000。)
    これはもっとトリッキーになるでしょう:)

  • 小数部分のない小数点をサポートしますか? (例: '12.')次に、小数点の一致の後に
    追加します。?(-?\d*(\.?\d+)?)?

  • 小数部分は必須ですか?
    最後の を削除し?ます。(-?\d*(\.?\d+))?

于 2012-11-14T16:23:19.167 に答える