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

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

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

如果您想要一个看起来像C浮点数的东西,这是使用CPAN的Regexp
::
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中使用这些模式。

请享用。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5489479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存