숫자 끝에 숫자가 몇 번 나타나는지, 예를 들어 2 번 나타나는지 확인하고 싶습니다. 정규식은 아마도 "group [0-9] 2 회 끝에"와 같은 말을해야하고, PHP 변수를 정규 표현식에 삽입하여 '반복 횟수'를 나타내는 2를 대체 할 수 있습니다.숫자 끝에 숫자가 반복되는지 확인 하시겠습니까?
정규 표현식 사용해야합니까?
P.S : 어떤 자리 숫자의 끝에 2 회 반복되어 있는지 확인한다 발현이 올바른 경우 바라기 PHP code의 단편이 확인할 수 있도록 할 수있다.
$Regex="/$[help]$/";
$Input=array(123456,112345,333333,123455,99);
$CorrectOutput=array(0,0,0,1,1);
echo "==WORKING IN EVERY TEST CASE?==<br>";
for($TestEntry=0;$TestEntry<=4;$TestEntry++){
$Result = preg_match($Regex,$Input[$TestEntry]);
if($Result==$CorrectOutput[$TestEntry]){
echo "Got ".$Result.", expected ".$CorrectOutput[$TestEntry]." - Good, seems to be working for " . $Input[$TestEntry] . ".<br>";
}else{
echo "Got ".$Result.", expected ".$CorrectOutput[$TestEntry]." - Sorry, not working for " . $Input[$TestEntry] . ".<br>";
}
}
미리 감사드립니다. 대답은 아마 다음과 같다
, 덕분에 많은 :
$Repetition = 3; //Number of times a digit repeats at the end of the number (min. 2)
$Regex='/(?:^(\d)\1{'.($Repetition-1).'}$)|(?:^.*(\d)(?!\2{'.$Repetition.'})(\d)\3{'.($Repetition-1).'}$)/';
와우, 확실히 인상적입니다! 나는 아직도 "죄송합니다. 123455를 위해 일하지 않습니다." 그리고 "미안, 99를 위해 일하지 않는다." 그래, 그것을 사용하는 경우, 그래, 흠 .. – Chris
그게 당신이 테스트 사이트에서 "및 \, 내가 내 자신의 컴퓨터 에서이 코드를 실행하기 때문에 PHP는 cli를 사용하여 정답을 얻고, 당신은"에 변경해야합니다 (예 :'$ Regex = '/ (^ |.) (^ | (?! \\ 1)) (.) \\ 3 $ /';' 사이트.) –
당신이 그것에 관해 어떻게 알았는지 실마리가 아니라, 당신 말이 맞다! 아름답게 일하고, 정말 고마워! – Chris