用正则表达式匹配字符串并用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+)"