-
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中正则表达式使用方法详解 正则表达式是字符构成的串,定义了一个用来搜索匹配字符串的模式。 Java中的正则表达式使用方法详解将为读者提供一个详细的指南,了解正则表达式的基础知识和使用方法。 一、正则...
JAVA中正则表达式详解
java中正则表达式Pattern类的应用,基本上用来验证之类的应用
在Java中,正则表达式是通过`java.util.regex`包中的类来实现的,如`Pattern`和`Matcher`。下面将详细介绍正则表达式的常见语法和在Java中的使用。 首先,正则表达式的基本元素包括: 1. `.`:匹配任何单个字符,...
JAVA中正则表达式的一个简单例子.pdf
### 浅谈Java中正则表达式的优化方法 在日常的软件开发过程中,正则表达式作为一种强大的文本处理工具被广泛应用于数据验证、文本搜索与替换等场景之中。尤其是在Java语言环境中,`java.util.regex`包提供了丰富的...
在Java中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分割字符串。自从JDK 1.4开始,Java提供了内置的正则表达式API,位于`java.util.regex`包中,主要包括`Pattern`和`Matcher`两个核心类。 1. ...
在本文中,我们将深入探讨Java中正则表达式的使用方法,以及如何通过它们来增强我们的代码功能。 首先,Java中的正则表达式支持是通过`java.util.regex`包提供的。这个包包含三个主要类:`Pattern`、`Matcher`和`...
- 当两者结合使用,如`^abc$`,则会匹配整个字符串仅由"abc"组成的文本。 2. **'*', '+', 和 '?'** - `*` 表示零个或多个前面的字符,相当于`{0,}`。例如,`ab*`匹配任何以"a"开头,后面跟着零个或多个"b"的字符...
有重点和调理,一看就会了. 只要涉及java两个类
例如,`str5.matches("//W{9}")`会匹配九个非字母、数字和下划线的字符,而`str6.matches("//w+")`则匹配一个或多个字母、数字或下划线。 6. **自定义字符集合**: `[...]`用于定义自定义字符集,如`"[fdetg]+"`...
Java中正则表达式split()特殊符号使用详解 Java中的split()方法是String类中的一个方法,该方法使用正则表达式来将字符串分割成多个子字符串。然而,在使用split()方法时,需要注意特殊符号的使用,否则可能会导致...
Java中正则表达式的使用和详解 Java中正则表达式的使用和详解是Java开发中非常重要的一部分。正则表达式是一种强大的字符串匹配工具,可以用来验证字符串是否符合一定的规则,或者在字符串中查询特定的字符或字符串...
在Java程序设计中,正则表达式是处理文本的强大工具,它允许我们对字符串进行模式匹配和操作。去除HTML标签是处理网页数据或用户输入时常见的需求之一,尤其是在从内容管理系统或文本编辑器中获取数据时。HTML标签的...
接下来,我们将详细介绍Java中正则表达式的使用方法,并举例说明如何使用split()方法进行字符串查找,replace()方法进行字符串替换,以及如何使用Pattern和Matcher类来获取字符串中的特定部分。 首先是字符串查找,...
正则表达式已经超出了某种语言或某个系统的局限,成为被人们广为使用的工具,我们完全可以用它来解决实际开发中碰到的一些实际的问题。 在JDK1.3及之前的JDK版本中并没有包含正则表达式的类,如果要在Java中使用...