求一正则表达式 小弟对正则表达式不是很熟悉,比较着急,像“A@@B@@C@@D##A1@@B1@@C1@@D1##......”这个形式的字符串的正则表达式应该怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想去验证所传的字符串是否属于这种格式,你说的split是获取串中的数据 ^([a-zA-Z0-9]+[@]{2}[a-zA-Z0-9]+[@]{2}[a-zA-Z0-9]+[@]{2}[a-zA-Z0-9]+[##]{2})+$ for exampleString s = "A@@B@@C@@D##A1@@B1@@C1@@D1##";System.out.println(s.matches("([A-Z\\d#]+(@{2})?)+"));"([A-Z\\d#]+(@{2})?)+"大写字母或数字或#,然后接着2个@(这2个@可有可无)所组成的字符串,这样组成字符可有多个[A-Z]表示大写字符\\d表示数字,也可以用[0-9]代替[#]就是#字符@就是字符{2}表示出现2次?表示可有可无+表示出现1次或多次()表示一个组 是否全是A@@B@@C@@D##类似于这样的一节一节拼成的,如果是的话可以用 public static void main(String[] args) { String s = "A@@B@@C@@D##A@@B@@C@@D##"; System.out.println(s.matches("(\\w+@{2}\\w+@{2}\\w+@{2}\\w+#{2})+")); } 呵呵,就当是学习怎么写正则表达式了,我写的那个串中A、B、C等只是一个代号而已,实际上真正应用到可能是各种不同的数据库中的字段值,这样的话怎么会知道该如何写正则表达式呢! 哦,我的字符串中不是A,B,C,D而是可能任意的字符串,任意在正则表达式中应该怎么表示啊? .点号表示任意字符就是任意字符,然后2个@,这样的字符串多个组合,对吧,那就更简单了String s = "A@@B@@C@@D##A1@@B1@@C1@@D1##";System.out.println(s.matches("(.+?(@{2})?)+")); 那天受到你的启发之后回去写了一个正则表达式,用在XSD验证XML时,我的数据是“001##XX制药厂#国营企业##024-65XXXX23##新区出口加工区XXX##胶囊@@002##XX化肥##民营企业##024-35XXXX23##新区##二氧化硫@@003##XX食品##民营企业##024-66XXXX23##新区水家##食品安全”,大概意思就是从数据库中读出的字段用“##”分隔,行之间用“@@”分隔,由于数据数目不确定,所以我的正则表达式是“(.+#{2}.+(@{2})?)+”并且用其他工具测试能通过,我不明白为什么xsd的校验通不过呢?能够继续指导一下? 高手,在吗?我看书了,可是还有问题,能指点一下吗?在XSD验证XML时,我的数据是“001##XX制药厂#国营企业##024-65XXXX23##新区出口加工区XXX##胶囊@@002##XX化肥##民营企业##024-35XXXX23##新区##二氧化硫@@003##XX食品##民营企业##024-66XXXX23##新区水家##食品安全”,大概意思就是从数据库中读出的字段用“##”分隔,行之间用“@@”分隔,由于数据数目不确定,所以我的正则表达式是“(.+#{2}.+(@{2})?)+”并且用其他工具测试能通过,我不明白为什么xsd的校验通不过呢? js问题 hibernate自关联的实现方式? 请教hibernate Criteria 嵌套查询问题 Struts+Spring+Hibernate整合报空指针的疑问 Hibernate真是垃圾 hibernate关于多对多关系的关联表中的插入问题 文件无法打开 将项目从JBoss下面移植到tomcat 一个郁闷了我一个星期的问题,在线等,求高手解答,(解决就给分) stateless session bean究竟快在那里,答就有分,不够在开? XSD中的正则表达式应该怎么写? 有关hibernate3.6的日志问题
String s = "A@@B@@C@@D##A1@@B1@@C1@@D1##";
System.out.println(s.matches("([A-Z\\d#]+(@{2})?)+"));"([A-Z\\d#]+(@{2})?)+"
大写字母或数字或#,然后接着2个@(这2个@可有可无)所组成的字符串,这样组成字符可有多个
[A-Z]表示大写字符
\\d表示数字,也可以用[0-9]代替
[#]就是#字符
@就是字符
{2}表示出现2次
?表示可有可无
+表示出现1次或多次
()表示一个组
String s = "A@@B@@C@@D##A@@B@@C@@D##";
System.out.println(s.matches("(\\w+@{2}\\w+@{2}\\w+@{2}\\w+#{2})+"));
}
就是任意字符,然后2个@,这样的字符串多个组合,对吧,那就更简单了
String s = "A@@B@@C@@D##A1@@B1@@C1@@D1##";
System.out.println(s.matches("(.+?(@{2})?)+"));
能够继续指导一下?
在XSD验证XML时,我的数据是“001##XX制药厂#国营企业##024-65XXXX23##新区出口加工区XXX##胶囊@@002##XX化肥##民营企业##024-35XXXX23##新区##二氧化硫@@003##XX食品##民营企业##024-66XXXX23##新区水家##食品安全”,大概意思就是从数据库中读出的字段用“##”分隔,行之间用“@@”分隔,由于数据数目不确定,所以我的正则表达式是“(.+#{2}.+(@{2})?)+”并且用其他工具测试能通过,我不明白为什么xsd的校验通不过呢?