Java Android:复杂字符串需要正则表达式
我有绳子Java Android:复杂字符串需要正则表达式,java,android,regex,pattern-matching,grammar,Java,Android,Regex,Pattern Matching,Grammar,我有绳子 String myData = "status:\" op en \" AND \"Managed Type\":\"El ectrical\" AND status:verified status:\"resolved\" OR Managed Type:\"Ci vil\""; 我需要区分字符串中的所有值和属性 我已经尝试过一个带有模式的正则表达式,它在某种程度上满足了需求,但对于复杂的解析需要帮助 Pattern pattern = Pattern.compile(
String myData = "status:\" op en \" AND \"Managed Type\":\"El ectrical\" AND status:verified status:\"resolved\" OR Managed Type:\"Ci vil\"";
我需要区分字符串中的所有值和属性
我已经尝试过一个带有模式的正则表达式,它在某种程度上满足了需求,但对于复杂的解析需要帮助
Pattern pattern = Pattern.compile(
"\\s*[OR|AND]?\\s*(\"?[[\\s*]?\\w*[\\s*]?]*\"?)\\:\"?(([\\s*\\(\\)<>/\\\\\\$\\=\\#\\+%^'`&!{}:;|\\?\\*\\.\\[\\],~@-]?\\w*[\\(\\)<>/\\\\\\$\\=\\#\\+%^'`&!{}:;|\\?\\*\\.\\[\\],~@-]?\\s*)*)\"?\\s*[OR|AND]?\\s*",
Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(mydata);
while (matcher.find()) {
System.out.println(matcher.group(1) + " : " + matcher.group(2));
}
公认结果
status : op en
"Managed Type" : El ectrical
status : verified
status: resolved
Managed Type : Ci vil
提前感谢。我也遇到了同样的问题,我尝试了以下正常工作的正则表达式字符串(请注意,我在iOS中尝试过):
我也有同样的问题,我尝试了以下正常工作的正则表达式字符串(请注意,我在iOS中尝试过):
当您的正则表达式看起来像一个时,是时候重新考虑您的方法了。我觉得您可能希望倾向于使用解析器而不是正则表达式。为什么
状态:已验证状态:\“已解决”
没有用和/或分隔?“这是有效的吗?”比芬,我很久以前就看过这个链接了。我从中学到了很多,也尝试过这个,但没有成功。如果你能在这个问题上帮我的忙,那就太好了。。谢谢。当您的正则表达式看起来像一个时,可能会重复,是时候重新考虑您的方法了。我觉得您可能希望使用解析器而不是正则表达式。为什么status:verified status:\“resolved\”
没有用AND/OR分隔?“这是有效的吗?”比芬,我很久以前就看过这个链接了。我从中学到了很多,也尝试过这个,但没有成功。如果你能在这个问题上帮我的忙,那就太好了。。谢谢
status : op en
"Managed Type" : El ectrical
status : verified
status: resolved
Managed Type : Ci vil
NSString *regExPattern = @"(\\w*|\"[\\w\\s]{1,}\"):(\"[\\w\\s]{1,}\"?|\\w*)";