如下示例2种字符串要拆分正则表达式要怎么写:
1)3*1800*10000 怎么拆分成3,1800,10000 . 其中*可能是其他字符,同时最好还能检查*分隔的都是0-9之间的数字,第一个必须在2-100之间,第二个必须在1500-10000之间,第三个必须在6000-20000之间。
2)D180*80 怎么拆分成D,180,80 .其中*可能是其他字符,同时最好还能检查第一个必须是D,第二个必须在10-100之间,第三个必须在6-1000之间。
拆分不是Split么?不知道你是什么语言,就用js为例子了
var arr = "3*1800*10000".split(/[^0-9]/g);确认数字范围这种事情就不要通过正则了,转化一下再判断效率高于正则
至于第二个,你的*可能是其它字符,也就是说也可能是D,那就没办法分割,那就判断
"D180*80".charAt(0).toUpperCase()=="D"//判断首字母是否是D
然后同样用上面的[^0-9]进行分割
你这需求都是字符串截取,解析来的简单,不需要正则,更适合用字符串进行子串的截取,查找,然后就是判断
([2-9]|[1-9]\d)*(1[5-9]\d{2})*([6-9]\d{3}|1\d{4})
D(1\d{2})*([6-9]|[1-9]\d{1,2})
正则表达式只用来检测是否符合规则,拆分的话还是需要你自己用相应语言的拆分语句去进行,如js的split方法。可以分两种进行:1、先检查格式,再拆分。这样做的好处在于只用写一个整体的正则表达式。2、先进行拆分,然后再进行格式检查,这样需要对拆分后的数据分别检查。根据业务需要,两种方法各有优势,具体根据你的需要来选择。