好的,所以我试图用“,”分割字符串,它们不在’[‘或’]’内部。我有一个适用于JavaScript的RegEx,但无法将其转换为Java语法。
JS RegEX:
/,(?![^[]*])/g
例句:
ex1 , [ex2 , ex3 ] , ex 4 , ex 4, [ex , ex ]
它在http://refiddle.com上运行良好,但是当我尝试在Java中(在Eclipse下)使用RegEx时,出现错误消息:
索引10附近的未封闭字符类,(?![^ [] *])
我所做的就是删除开头的“ /”和结尾的“ / g”,但我无法翻译语法。
实现此目标的最佳方法是什么?
由于还需要支持嵌套的方括号,并且在方括号内应忽略逗号,因此需要一个简单的解析器来收集所需的文本块。
public static List<String> splitWithCommaOutsideBrackets(String input) {
int BracketCount = 0;
int start = 0;
List<String> result = new ArrayList<>();
for(int i=0; i<input.length(); i++) {
switch(input.charAt(i)) {
case ',':
if(BracketCount == 0) {
result.add(input.substring(start, i).trim());// Trims the item!
start = i+1;
}
break;
case '[':
BracketCount++;
break;
case ']':
BracketCount--;
if(BracketCount < 0)
return result; // The BracketCount shows the [ and ] number is unbalanced
break;
}
}
if (BracketCount > 0)
return result; // Missing closing ]
result.add(input.substring(start).trim()); // Trims the item!
return result;
}
并用作
String s = "ex1 , [ex2 , ex3 ] , [ hh3 , rt5 , w3 [ bn7 ] ] , ex 4 , ex 4, [ex , ex ]";
List<String> res = splitWithCommaOutsideBrackets(s);
for (String t: res) {
System.out.println(t);
}
示例Java代码的输出:
ex1
[ex2 , ex3 ]
[ hh3 , rt5 , w3 [ bn7 ] ]
ex 4
ex 4
[ex , ex ]
请注意,不需要修剪项目。
另外,在I处return result
,您可能想添加引发异常的代码,而不是立即返回result
。
在Java中的字符类,]
并且[
必须转义,不像在JavaScript中,你只需要逃避]
符号(字符类中)。
String pat = ",(?![^\\[]*])";
^^
这是一个IDEONE演示:
String s = "ex1 , [ex2 , ex3 ] , ex 4 , ex 4, [ex , ex ]";
String pat = ",(?![^\\[]*])";
String[] result = s.split(pat);
System.out.println(Arrays.toString(result));
请注意,在Java和JS中]
,都不必转义字符类外部的。
问题内容: 有人可以帮助我将php regex转换为java regex吗? 太好了,如果您能帮助我,我将不胜感激,因为我对正则表达式的了解不强。 我如何理解php中的函数与Java中的函数相同?。因此在Java代码中将是这样。 但是此代码无法正常工作,因为我怎么知道php中的regex与java不同。 拜托,有人帮我!非常感谢)) 更新 最终结果是 问题答案: 对于此PHP正则表达式: 在Jav
问题内容: 有没有办法将JavaScript正则表达式转换为Java安全正则表达式? 上面的语句给了我错误: 我对正则表达式不是很熟悉,因此我可以使用一些指导。 谢谢! 问题答案: 摆脱正斜杠。您不需要Java中的代码。而且,Java的正则表达式风格无法识别诸如和的开关。这些由中的常量控制。 在Java世界中唯一有意义的Javascript正则表达式开关是和。它们映射到和(您可以在从类中创建正则表
我试图将我的Javascript撰写函数翻译成Python,但我对最后一个有问题。我如何推广未知数量的函数? 读完本文后,我想避免使用方法。 javascript: 蟒蛇: 感谢所有的改进。。。
所以我有了这个javascript函数,我想把它转换成一个java函数。这是最初的功能: 我正在使用这个库http://kevinsawicki.github.io/http-request/创建http请求,到目前为止,我有以下内容: 我认为我的头球是正确的,我唯一的问题是我的身体有问题。我不理解大部分的请求,因为我现在才刚刚开始学习这个,我很想自己做这个程序,但是我真的被这部分卡住了。另外,我
问题内容: 我有一个包含几个整数的数组。我已经向数组添加了一些值,但是现在我需要通过jQuery的方法将此数组发送到页面。如何将其转换为JSON对象进行发送? 问题答案: 并致电: 注意: _JSON对象现在是大多数现代Web浏览器(IE 8及更高版本)的一部分。
问题内容: 我如何以这种格式转换PHP数组 到以下格式的Javascript数组? 问题答案: 安全声明: 您不再需要以下内容 如果您没有PHP 5.2,则可以使用以下代码: