6

RegExメートル法で距離の値を一致させたい。この正規表現は、空白を無視して12m、と一致する必要があります100cm1km

4

4 に答える 4

12

これを試して:

(?:0|[1-9]\d*)\s*(?:da|[yzafpnμmcdhkMGTPEZY])?m
于 2009-09-27T10:30:11.717 に答える
7

そして、Paulの答えを拡張して小数点以下の値を含めるには...

(\d+).?(\d*)\s*(m|cm|km)
于 2009-09-27T10:35:42.127 に答える
4

必要なものを正確に指定しなかったため、例を使用して、整数値、オプションの空白、cm、m、またはkmの単位指定子を検索することを導き出しました。つまり、これはその最も単純な例です。

/(\d+)\s*(m|cm|km)/

最初の括弧は数値をキャプチャし、次に0をスキップします-多くの空白文字は、2番目の括弧のセットで必要な単位をキャプチャする前に。

他の回答でわかるように、これを超えて10進値を取得し、さらに多くのSI単位系プレフィックスをキャプチャすることもできます。

于 2009-09-27T10:29:13.170 に答える
0

次の正規表現では、正確な数字の一致が必要です。小数点以下4桁まで。

^(\d+)[.,]?(\d{1,4})$

そしてオプションでユニット付き

^(\d+)[.,]?(\d{1,4})\s*(mm|m|cm|km)$

そしてユニット間の1つのスペース

^(\d+)[.,]?(\d{1,4})[ ]?(mm|m|cm|km)$

マッチング:
123
123,456
134.456

一致しない:
abc
abc、456
123abc
123、abc

于 2021-06-24T11:40:31.137 に答える