이 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"로 시도하십시오. 첫 번째 숫자는 한 자리 숫자로 반환됩니다. 두 개의/s가 사라집니다. 내 테스트를 참조하십시오 : http://codepad.org/C69hPk19 –
안녕 사이먼,하지만 난 단지 숫자와 대괄호를받는거야, 나는 결코/ – afontcu