Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.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_String - Fatal编程技术网

Java 与我的正则表达式匹配时出错

Java 与我的正则表达式匹配时出错,java,regex,string,Java,Regex,String,可以帮我用正则表达式获取这些字符串吗。。这是我的源代码 帮帮我 String t="01-21 10:56:41.161 D/RILJ ( 2785): [rild] [2058]< VOICE_REGISTRATION_STATE {1, 271c, 0000058d, 16, null, null, null, null, null, null, null, null, null, null, null}"; String Exp= "(VOICE_REGISTRATION_ST

可以帮我用正则表达式获取这些字符串吗。。这是我的源代码

帮帮我

String t="01-21 10:56:41.161 D/RILJ    ( 2785): [rild] [2058]< VOICE_REGISTRATION_STATE {1, 271c, 0000058d, 16, null, null, null, null, null, null, null, null, null, null, null}";
String Exp= "(VOICE_REGISTRATION_STATE) .(\\d+), (\\w+), (\\w+), (\\d+),";
Pattern p = Pattern.compile("\\b"+Exp+"\\b", Pattern.CASE_INSENSITIVE);

Matcher m = p.matcher(t);

问题只在于您在最后添加的单词边界。把它拿走。因为逗号(位于数字16旁边)和空格之间不存在单词边界<代码>\b匹配单词字符和非单词字符

Pattern p = Pattern.compile("\\b" + Exp, Pattern.CASE_INSENSITIVE);

非常感谢,兄弟,但我还不明白为什么我必须删除最后一个b,我认为b只是用来绑定表达式的,不是吗?好的,
[a-zA-Z0-9.
称为单词字符。任何不是这些字符的都称为非单词字符<代码>\b匹配单词字符和非单词字符
和space都是非单词字符,因此这两个字符不存在单词边界。你可以问我为什么第一个
\b
有效。这是因为空格(非单词)和
V
(在语音注册中)之间存在单词边界
Pattern p = Pattern.compile("\\b" + Exp, Pattern.CASE_INSENSITIVE);