您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

正则表达式可以匹配任何数字(实数,有理数和符号)

正则表达式可以匹配任何数字(实数,有理数和符号)

如果您想要一个看起来像C浮点数的东西,这是使用CPANRegexp :: Common模块,使Perl发痒的正则表达式的方法

$ perl -MRegexp::Common -le 'print $RE{num}{real}'
(?:(?i)(?:[+-]?)(?:(?=[.]?[0123456789])(?:[0123456789]*)(?:(?:[.])(?:[0123456789]{0,}))?)(?:(?:[E])(?:(?:[+-]?)(?:[0123456789]+))|))

您可以根据需要进行调整,但这可以为您提供基本的想法。

它确实非常灵活。例如,这为以3为基数的实数倒出了一个模式,即允许每三个位置使用逗号:

$ perl -MRegexp::Common -le 'print $RE{num}{real}{-base => 2}{-sep => ","}{-group => 3}'
(?:(?i)(?:[+-]?)(?:(?=[.]?[01])(?:[01]{1,3}(?:(?:[,])[01]{3})*)(?:(?:[.])(?:[01]{0,}))?)(?:(?:[E])(?:(?:[+-]?)(?:[01]+))|))

文档显示,它可以为您吐出的数字模式的完整语法为:

$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中使用这些模式。

请享用。

其他 2022/1/1 18:15:58 有450人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶