。abc。abc。abc (区间内有abc3个字母但是不是这样的顺序)
用abc作为分段,得到其中的第一段???或者怎样判断一个字串没有不包含 abc (同上也存在abc3个字母)
如果是包含abc就简单了,但是反过来怎样能够表达呢??? (.*)abc
只能得到 。abc。abc
我是使用jdk的库 Pattern p = Pattern.compile("(.*)abc");
Matcher m = p.matcher("11111cba1111111abc11111111cba111111abc111"); //除了abc其他字符任意
while (m.find()) {
System.out.println(":::::::::::::;[" + m.group(1) + "]");
}print :
:::::::::::::;[11111cba1111111abc11111111cba111111]不能使用间接的方法,只能一次用一个表达式,非正则表达式解法请不要提了
用abc作为分段,得到其中的第一段???或者怎样判断一个字串没有不包含 abc (同上也存在abc3个字母)
如果是包含abc就简单了,但是反过来怎样能够表达呢??? (.*)abc
只能得到 。abc。abc
我是使用jdk的库 Pattern p = Pattern.compile("(.*)abc");
Matcher m = p.matcher("11111cba1111111abc11111111cba111111abc111"); //除了abc其他字符任意
while (m.find()) {
System.out.println(":::::::::::::;[" + m.group(1) + "]");
}print :
:::::::::::::;[11111cba1111111abc11111111cba111111]不能使用间接的方法,只能一次用一个表达式,非正则表达式解法请不要提了
用abc作为分段,得到其中的第一段???
简单地:
Pattern p=Pattern.compile("abc");
String r[]=p.split("11111cba1111111abc11111111cba111111abc111");
System.out.println(r[0]);
Pattern p=Pattern.compile("[abc]+");
这样可以:
Pattern p=Pattern.compile("[abc][abc][abc]");
或
Pattern p=Pattern.compile("[abc]{3}");
split()
都可以的
如果是包含abc就简单了,但是反过来怎样能够表达呢???
-------------------------------------------------------------------
"没有不包含 abc "什么意思?
感觉楼主想说"不包含",但是根据双重否定就是肯定的定律"没有不包含 abc "的意思就是"包含abc".
用abc作为分段,得到其中的第一段???
简单地:
Pattern p=Pattern.compile("abc");
String r[]=p.split("11111cba1111111abc11111111cba111111abc111");
System.out.println(r[0]);
------------------------------------------------
是这个意思,但是这个是很长的一段表达式中的一段,我没办法单独这样分析
11111cba1111111abc11111111cba111111abc111是我需要匹配的字符串中的一段罢了,我需要使用match.group(i) 取得其中的很多部分,11111cba1111111 作为其中的第二部分,但是我只能取得11111cba1111111abc11111111cba111111这不是我想要的。
--------------同上我不能用StringTokenizer这样的方法回复人: wb0622(波波) ( ) 信誉:100
"没有不包含 abc "什么意思?
感觉楼主想说"不包含",但是根据双重否定就是肯定的定律"没有不包含 abc "的意思就是"包含abc".
---------------------------
不错,是写错了,但是 【如果是包含abc就简单了,但是反过来怎样能够表达呢】应该排除了这个可能吧
这样可以:
Pattern p=Pattern.compile("[abc][abc][abc]");
或
Pattern p=Pattern.compile("[abc]{3}");
------------------------
其实是用abc(3有顺序的)分段,我想要第一个abc之前的但是他会匹配到最后一个abc之前都给我匹配出来了,所以我想有没有办法判断里面没有abc字样,这样就不会匹配到最多的结果了,但是正则表达式好像不能表示出这个来。
Pattern p = Pattern.compile("(.*?)abc");
结果为
:::::::::::::;[11111cba1111111]
:::::::::::::;[11111111cba111111]