Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用正则表达式拆分字符串_Java_Regex - Fatal编程技术网

Java 使用正则表达式拆分字符串

Java 使用正则表达式拆分字符串,java,regex,Java,Regex,我一直在尝试在android中使用正则表达式拆分字符串,但没有成功 字符串的格式如下id;值| 例如: String valueString = "20;somevalue|4;anothervalue|10;athirdvalue|5;enoughwithvaluesalready"; 我使用此方法尝试拆分字符串 public void splitString(String valueString){ Pattern p = Pattern.compile("([\\d]+);([^

我一直在尝试在android中使用正则表达式拆分字符串,但没有成功

字符串的格式如下id;值| 例如:

String valueString = "20;somevalue|4;anothervalue|10;athirdvalue|5;enoughwithvaluesalready";
我使用此方法尝试拆分字符串

public void splitString(String valueString){
    Pattern p = Pattern.compile("([\\d]+);([^\\|]+)");
    Matcher m = p.matcher(valueString);  
    boolean matches = m.matches();
}
当我在中运行它时,它看起来很好,在Android中找不到匹配项。有什么想法吗

方法
matches()
尝试将正则表达式与完整字符串进行匹配。这显然是不匹配的

find()
将查找下一个匹配的子字符串。

方法
matches()
尝试根据完整字符串匹配正则表达式。这显然是不匹配的


find()

    Log.i("MainActivity ", "Matches " + valueString.matches("([\\d]+);([^\\|]+).*"));
行上返回true

)


在上面的函数中进行描述

我已经尝试了您的示例,它只会在Regx末尾添加。*即可

    Log.i("MainActivity ", "Matches " + valueString.matches("([\\d]+);([^\\|]+).*"));
行上返回true

)

在上面的函数中描述为什么不使用而不是编写自己的解决方案

比如:

你为什么不使用而不是编写自己的解决方案

比如:


对我来说,错误似乎在于逃避退步。else regex
([\d]+);([^\\\|]+)
似乎很好。为什么不使用
String.split
而不是您自己的解决方案呢?@KARASZIIstván我正要发布这篇文章。拆分时间|后接拆分时间@Bunjiqoubianco我也这么做了,然后我决定先问:)对我来说,错误似乎是逃避了退步。else regex
([\d]+);([^\\\|]+)
似乎很好。为什么不使用
String.split
而不是您自己的解决方案呢?@KARASZIIstván我正要发布这篇文章。拆分时间|后接拆分时间@Bunjiqoubianco我也这么做了,然后我决定先问它:)我试过了,但出于某种原因,它分割了字符串中的每个字符。当我用\\|对它进行转义时,它工作得很好:)没有转义,它什么也找不到或什么都找不到(因为split需要一个regex参数),这奇怪地匹配了所有内容。我试过了,但出于某种原因,它拆分了字符串中的每个字符。当我用\\|转义时,它工作得很好:)没有转义,它什么也找不到或什么都找不到(就像split使用正则表达式参数一样),这奇怪地匹配了所有内容。