現在、次の10進数を抽出しようとしています:
2453.6756667756
次の文から:
ID: 1 x: 1202 y: 2453.6756667756 w: 242
私はこのコードを使用しています:
regularExpression.setPattern("(\\d+)(?:\\s*)(w:)")
ただし、次の結果が得られます。
6756667756
これはまったく正しくありません。
私を手伝ってくれますか ?
現在、次の10進数を抽出しようとしています:
2453.6756667756
次の文から:
ID: 1 x: 1202 y: 2453.6756667756 w: 242
私はこのコードを使用しています:
regularExpression.setPattern("(\\d+)(?:\\s*)(w:)")
ただし、次の結果が得られます。
6756667756
これはまったく正しくありません。
私を手伝ってくれますか ?
次の正規表現を使用できます。
\d+\.\d+(?=\s*w:)
デモを見る
Qt の場合:
regularExpression.setPattern("\\d+\\.\\d+(?=\\s*w:)")
正規表現は次のように一致します。
\d+
- 1桁以上\.
- リテラルドット\d+
- 1桁以上(?=\s*w:)
w
- 一致した最後の桁の後に 0 個以上の空白記号が存在することを確認する肯定的な先読み:
(ただし、この部分文字列は消費されず、先読みはゼロ幅のアサーションであるため、存在をチェックするだけです)。キャプチャ グループを使用すると、先読みなしでより単純な正規表現を使用できます。
(\d+\.\d+)\s*w:
次に、値はグループ 1 になります。