如何解决序列的BMHT正则表达式
| 我正在尝试建立一个正则表达式。 缩写如下:B - Billion
M - Million
T - Thousand
H - Hundred
现在,如果我说“ 1”表示“ 2”
但我不能说3T2M
或我不能说3M2222T
BMTH应按顺序排列,并应遵循标准规则来创建数字。
我直到这
([0-9]+[B]){1}+([0-9]+[M])?+([0-9]+[T])?+([0-9]+[H])?
但是这里B是强制性的。
请帮忙。
解决方法
尝试这个:
^(?:\\d+B)?(?:\\d{1,3}M)?(?:\\d{1,3}T)?(?:\\dH)?$
您可以在regexr.com?2thld上进行测试
(?:)
是非捕获组,否则捕获的部分存储在变量中
\\d
等于[0-9]
组或字符使其成为可选字符后的“ 10”
+
表示一个或多个
{1,3}
最多说三遍
如果只有1个字符,则仅M
就足够了,不需要13ѭ
,([0-9]{1,3}B)?([0-9]{1,3}M)?([0-9]{1,3}T)?([0-9]H)?
每个B / M / T最多占3位,H最多占1位(按此顺序),每个组都是可选的。添加适合您需求的约束条件…
请注意,[0-9]
不一定等于\\d
,它取决于区域设置和内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。