1

現在、次の10進数を抽出しようとしています:

2453.6756667756

次の文から:

ID: 1 x: 1202 y: 2453.6756667756 w: 242

私はこのコードを使用しています:

regularExpression.setPattern("(\\d+)(?:\\s*)(w:)")

ただし、次の結果が得られます。

6756667756

これはまったく正しくありません。

私を手伝ってくれますか ?

4

1 に答える 1

4

次の正規表現を使用できます。

\d+\.\d+(?=\s*w:)

デモを見る

Qt の場合:

regularExpression.setPattern("\\d+\\.\\d+(?=\\s*w:)")

正規表現は次のように一致します。

  • \d+- 1桁以上
  • \.- リテラルドット
  • \d+- 1桁以上
  • (?=\s*w:)w- 一致した最後の桁の後に 0 個以上の空白記号が存在することを確認する肯定的な先読み:(ただし、この部分文字列は消費されず、先読みはゼロ幅のアサーションであるため、存在をチェックするだけです)。

キャプチャ グループを使用すると、先読みなしでより単純な正規表現を使用できます。

(\d+\.\d+)\s*w:

次に、値はグループ 1 になります。

于 2015-12-28T23:09:25.833 に答える