我有一个包含多个xml结构的字符串,如下所示:
cv::Vec4b pixVal = mat.at<cv::Vec4b>(0, 0);
现在我想使用逗号分隔符拆分此字符串。但我无法做 str.split(&#34;,&#34;),因为这会给我4个不同的字符串。此外,我无法执行 str.split(&#34;&gt; *&lt;&#34;),因为它会从分割字符串中删除结束和开始括号。我想我可以使用Java的Pattern类,但我不确定我应该使用的模式。
我不能使用xml解析器,因为如果你看得正确,字符串不是有效的xml。
根据我的要求,有人可以建议我分割字符串的方法吗?
答案 0 :(得分:2)
我认为最简单,最安全的方法是上游到XML的源代码并修复格式。这是不可能的,您可以尝试使用以下内容删除分隔XML标记的所有逗号:
String str = "<a><f dof=\"x,y\" /></a>,<a><f dof=\"m,n\" /></a>";
str = str.replaceAll("(</\\.*>)\\s*,\\s*(<.*?>)", "$1$2");
System.out.println(str);
现在您可能有一个格式良好的XML字符串,可以使用标准方法进行解析。
<强>输出:强>
<a><f dof="x,y" /></a><a><f dof="m,n" /></a>
在这里演示:
答案 1 :(得分:1)
你可以试试这个 -
首先将'>' & '<'
之间的逗号替换为其他字符,例如'#'
像这样,
String str = "<a><f dof=\"x,y\" /></a>,<a><f dof=\"m,n\" /></a>";
str = str.replaceAll(">,<",">#<");
而不是那个新角色,
String[] strArray = str.split("#");
希望这会对你有所帮助:)。