Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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,我正在尝试读取一个JSONfeed(它不是JSON解析),并检测数字以便进一步操作。这是我的代码: try { String regex = "^-?\\d+$"; Pattern myPattern = Pattern.compile(regex); Matcher regexMatcher = myPattern.matcher(jsonString); while (regexMatcher.find()) { for (int i = 0

我正在尝试读取一个
JSON
feed(它不是JSON解析),并检测数字以便进一步操作。这是我的代码:

try {
    String regex = "^-?\\d+$";
    Pattern myPattern = Pattern.compile(regex);
    Matcher regexMatcher = myPattern.matcher(jsonString);

    while (regexMatcher.find()) {
        for (int i = 0; i < regexMatcher.groupCount(); i++) {
             System.out.println(regexMatcher.group(i));
        }
    } 
} catch (PatternSyntaxException ex) {
    // Syntax error in the regular expression
}
试试看{
字符串regex=“^-?\\d+$”;
Pattern myPattern=Pattern.compile(regex);
Matcher regexMatcher=myPattern.Matcher(jsonString);
while(regexMatcher.find()){
对于(int i=0;i
这是JSON字符串链接:

我只想打印以下数字:

一百

-345

785


我的代码有什么问题?我是新来的
Regex
,无法找到解决方案。

对于您特定的
JSON
,您可以使用以下方法:

String regex = ", (-?\\d+)";

regexMatcher.group(1)
将为您提供号码首先,您必须提供“(“And”)”以创建您要查找的匹配组

除此之外,删除“^”和“$”,因为每行可能有多个点击

这应该起作用:

try {
String regex = "(-?\\d+)";
Pattern myPattern = Pattern.compile(regex);
Matcher regexMatcher = myPattern.matcher(jsonString);

while (regexMatcher.find()) {
    for (int i = 0; i < regexMatcher.groupCount(); i++) {
         System.out.println(regexMatcher.group(i));
    }
} 
} catch (PatternSyntaxException ex) {
    // Syntax error in the regular expression
}
试试看{
字符串regex=“(?\\d+”;
Pattern myPattern=Pattern.compile(regex);
Matcher regexMatcher=myPattern.Matcher(jsonString);
while(regexMatcher.find()){
对于(int i=0;i
您可以使用下一个正则表达式:

"(?<=, )(-?\\d+)"

”(?为什么不使用
JSON
解析器?您应该提供一个示例,说明您想要匹配的字符串类型和当前代码的输出/当前代码出了什么问题。在这个问题的前夜,我告诉过您,这不是JSON解析。我需要阅读JSON提要,并用相应的字符串替换数字,然后重新编写n在一个文件中。稍后我将解析它。
"(?<=,\\p{Space})(-?\d+)"