試してみ\b[0-9]{1,4}\.[0-9]{1,3}\.[0-9]{0,3}ましたが、34.89 と 23.89 がありません
以下のテキストの 28.72% を除くすべての数列が必要です
34.89
0105.93.10 ghghghh
0105.93.20 ghghhh
jjjjjhjj 0105.93.30 jsdfsd iksifsdjfk sdfsdk
0105.93.40ierfgg dfgkdfg dfgolgh 23.89
28.72%
ありがとう
ポール
試してみ\b[0-9]{1,4}\.[0-9]{1,3}\.[0-9]{0,3}ましたが、34.89 と 23.89 がありません
以下のテキストの 28.72% を除くすべての数列が必要です
34.89
0105.93.10 ghghghh
0105.93.20 ghghhh
jjjjjhjj 0105.93.30 jsdfsd iksifsdjfk sdfsdk
0105.93.40ierfgg dfgkdfg dfgolgh 23.89
28.72%
ありがとう
ポール
正規表現では、2つのドットが存在する必要があります。最後のドット桁シーケンスをオプションにする必要があり、次の場所%または別の数字が続く一致を除外する必要があります(そうでない場合28.7は内で28.72%一致します)。
\b[0-9]{1,4}\.[0-9]{1,3}(?:\.[0-9]{1,3})?(?![0-9%])
最後の部分をオプションにする
\b[0-9]{1,4}\.[0-9]{1,3}(?:\.[0-9]{0,3})?
元の表現ではピリオドが必要でした。
matching に関するルールがあまり具体的ではなかっ%たので、次のようにしました。
\b[0-9]{1,4}\.[0-9]{1,3}(?:\.[0-9]{0,3})?(?=[^%\d]|$)
最後の部分は、% 以外の数字以外の文字または行末の肯定的な先読みです。それ以外28.7の場合は式の残りの部分と一致し、最後は2パーセント以外の文字と一致します。
これにより、単一のドットで区切られ、その後に:が続かないすべての数値グループが検索され%ます。
(?:\d+\.)+\d+(?!\%)
ドットの両側に少なくとも1桁の数字が必要です。それ以外は、各グループの桁数は関係ありません。Atでは、数値に少なくとも1つのドットが必要です。
これには、各グループが2〜4桁である必要もあります。
(?:\d{2,4}\.)+\d{2,4}(?!\%)