-
java中正则的问题5
java中使用split分割字符串:怎么用正则匹配“@”、“;”、“:”但是不匹配双引号和单引号之间的内容,例如:String s ="qq@q'q@q'q;\"qqq@@qqq\"q;qq";这个字符串 拆分 完了应该是:qq 、q'q@q'q、"qqq@@qqq"q和qq2012年7月01日 21:04
5个答案 按时间排序 按投票排序
-
这个用正则效率应该就低了。
大概用这种带回溯的。比如 ?>(\')@
还不如自己写个小函数, 遍历一遍就over了
该分割分割,该压栈压栈。2012年7月02日 01:58
-
split的确不好解决,
使用indexof好解决的多
String s ="qq@q'q@q'q;\"qqq@@qqq\"q;qq";
如先按@分开:
int index1=s.indexof("@");
String s1=s.substring(0, index1);
s=s.substring(index1+1);
再按;分开
int index2=s.indexof(";");
String s2=s.substring(0, index2);
s=s.substring(index2+1);
......
以此类推,这种方法应该比较简单2012年7月02日 13:48
-
split做不到,但是正则表达式还是可以做到的,你可以把代码再封装一下。
/** * @param args */ public static void main(String[] args) { String s = "qq@q'q@q'q;\"qqq@@qqq\"q;qq"; String regex = "(([^'\"]+?)|([^']*?'[^']*?'[^']*?)|([^']*?\"[^']*?\"[^']*?))([@;:]|$)"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(s); while (m.find()) { System.out.println("==" + m.group(1)); } }
2012年7月02日 10:22
-
public static String[] split(String s) { ArrayList<String> list = new ArrayList<String>(); int n = s.length(); int beginIndex = 0; boolean hasQuot = false; for (int i = 0; i < n; i++) { char ch = s.charAt(i); switch (ch) { case '\'': case '"': hasQuot = !hasQuot; break; case '@': case ';': case ':': if (!hasQuot) { list.add(s.substring(beginIndex, i)); beginIndex = i + 1; } break; } } if (beginIndex < n) list.add(s.substring(beginIndex)); return list.toArray(new String[list.size()]); } /** * @param args */ public static void main(String[] args) { String s = "qq@q'q@q'q;\"qqq@@qqq\"q;qq"; String[] a = split(s); for (String str : a) { System.out.println(str); } }
2012年7月02日 10:13
-
那就分两次split好了,先按照',"来split一次,再按照“@”、“;”、“:”再来split一次不就好了么
var tmp = s.split(/[\'\"]+/);
var arr;
for (i = 0; i < arr.length;i++) {
arr = arr.concat(tmp[i].split(/[@、:]+/));
}2012年7月02日 08:50
相关推荐
Java中正则表达式使用方法详解.docx 网上搜集的Java中正则表达式使用方法详解
JAVA中正则表达式的应用 个人在网上 自己在家里写一些 java中常用的正则表达式 文件格式doc
java中正则表达式Pattern类的应用,基本上用来验证之类的应用
在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/ 或替换那些符合某个模式的文本内容。许多程序设计语言都支持...
java程序开发一些较实用的正则表达式用法,简单易懂,希望对广大程序员朋友有所帮助。
主要介绍了java中正则表达式实例详解的相关资料,需要的朋友可以参考下
有重点和调理,一看就会了. 只要涉及java两个类
获取每次使用引起小损失的分组。如果你实际并不需要获取一个分组内的文本,那么就使用非捕获分组。
NULL 博文链接:https://summerbell.iteye.com/blog/611838
Java中正则表达式去除html的标签,主要目的更精确的显示内容,接下来通过本文给大家介绍Java中正则表达式去除html标签的方法,需要的朋友参考下
本篇文章介绍了,在java中正则操作的方法总结。需要的朋友参考下
主要介绍了Java中正则表达式的使用和详解,包括匹配验证验证email是否正确,在字符串中查询字符或者字符串的代码实例,需要的朋友可以参考下
主要介绍了Java中正则表达式split()特殊符号使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
正则表达式已经超出了某种语言或某个系统的局限,成为被人们广为使用的工具,我们完全可以用它来解决实际开发中碰到的一些实际的问题。 在JDK1.3及之前的JDK版本中并没有包含正则表达式的类,如果要在Java中使用...
/** * @param 日期验证,验证的格式有: * "yyyyMM","yyyyMMdd","yyyyMMdd HH:mm:ss", * "yyyy-MM","yyyy-MM-dd","yyyy-MM-dd HH:mm:ss" * "yyyy.MM","yyyy.MM.dd","yyyy.MM.dd HH:mm:ss" * "yyyy/MM","yyyy/MM...
关于JAVA中正则表达式的速查表,提供了比较全面的正则表达式规则和一些简答的例子