我不得不将这个preg_split代码“翻译”成Java等价物。我尝试了一些没有成功的事情。这里是PHP代码,我试图翻译:与此preg_split等效的Java是什么?
$str="1 [3 4 5] 6 7 [8 9] 4";
$chars = preg_split("^\[(.*?)\]||/ /^", $str, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach ($chars as $key => $value) {
if(ord($value)!=0 && $value!=" "){
$res[]=$value;
}
}
print_r($res);
正如你看到的,我的字符串输入,可以由数字字符的任意序列,其中一些被包裹括号[]:
1 [3 4 5] 6 7 [8 9] 4
括号可以在字符串的开头或结尾,对此没有限制。
按照上面的例子中,结果是这样的:
[0] = "1"
[1] => "3 4 5"
[2] => "6"
[3] => "7"
[4] => "8 9"
[5] => "4"
我发现了一些问题,试图转换正则表达式(看起来像“\”失败为无效转义序列)。
要在正则表达式机制中放置“\”,您需要在String中将其写为“\\”,以便在String中转义其特殊含义。 – Pshemo
我不认为你的preg_split做你说的那样。尝试输入字符串“234 [3 4 5] 6/4// 7/7 [8 9] 4”。第一个数字以单个数字的形式返回。其中两个消失。看我的测试:http://codepad.org/C69hPk19 –
嗨西蒙,但我只接收数字和括号,我从来没有得到/ – afontcu