如果你想要一个看起来像C浮点数的东西,下面是如何利用
Regexp::Common module from CPAN搔痒Perl咳出一个正则数据集来做到这一点:
$perl -MRegexp::Common -le 'print $RE{num}{real}'
(?:(?i)(?:[+-]?)(?:(?=[.]?[0123456789])(?:[0123456789]*)(?:(?:[.])(?:[0123456789]{0,}))?)(?:(?:[E])(?:(?:[+-]?)(?:[0123456789]+))|))
如果你愿意,你可以调整一下,但这给你基本的想法.
它非常灵活.例如,这会为base-2实数吐出一个模式,每三个位置允许逗号:
$perl -MRegexp::Common -le 'print $RE{num}{real}{-base => 2}{-sep => ","}{-group => 3}'
(?:(?i)(?:[+-]?)(?:(?=[.]?[01])(?:[01]{1,3}(?:(?:[,])[01]{3})*)(?:(?:[.])(?:[01]{0,}))?)(?:(?:[E])(?:(?:[+-]?)(?:[01]+))|))
documentation显示它可以为您吐出的数字模式的完整可能语法是:
$RE{num}{int}{-base}{-sep}{-group}{-places}
$RE{num}{real}{-base}{-radix}{-places}{-sep}{-group}{-expon}
$RE{num}{dec}{-radix}{-places}{-sep}{-group}{-expon}
$RE{num}{oct}{-radix}{-places}{-sep}{-group}{-expon}
$RE{num}{bin}{-radix}{-places}{-sep}{-group}{-expon}
$RE{num}{hex}{-radix}{-places}{-sep}{-group}{-expon}
$RE{num}{decimal}{-base}{-radix}{-places}{-sep}{-group}
$RE{num}{square}
$RE{num}{roman}
真正为您想要的任何东西定制它.是的,当然你可以在Java中使用这些模式.
请享用.