공백 문자 (탭 및/또는 공백)가 뒤 따르는 하나 이상의 공백 문자 (탭 및/또는 공백)와 그 뒤에 하나 이상의 숫자 문자가오고 알파벳 문자와 세미콜론 다음에 쉼표와 숫자 및 세미콜론으로 구분됩니다.PHP 정규식에 어떤 문제가 있습니까?
시작 :
hello world 1007;
종료 :
hello world,1007;
공백 문자 (탭 및/또는 공백)가 뒤 따르는 하나 이상의 공백 문자 (탭 및/또는 공백)와 그 뒤에 하나 이상의 숫자 문자가오고 알파벳 문자와 세미콜론 다음에 쉼표와 숫자 및 세미콜론으로 구분됩니다.PHP 정규식에 어떤 문제가 있습니까?
시작 :
hello world 1007;
종료 :
hello world,1007;
시작과 끝의 두 |
은 잘못되었으므로 둘 다 정방향 슬래시 여야합니다.
다른 모든 슬래시는 역 슬래시이어야하며 이스케이프 처리해야합니다.
PHP 4.04 이후 $n
은 캡처 그룹을 참조하는 데 선호되는 방법입니다. 당신이 당신의 백 슬래시를 이스케이프 할 필요가 없습니다 작은 따옴표를 사용하는 경우
$output = preg_replace("/(\\D)\\s+(\\d+;)/", "$1,$2", $output);
:
$output = preg_replace('/(\D)\s+(\d+;)/', '$1,$2', $output);
그 미래 슬래시이어야한다 백 슬래시 내가 예를 제공합니다
? 큰 따옴표를 작은 따옴표로 변경하지 않으면 PHP에서도 이스케이프 처리해야합니다.당신은 정규 표현식에서 백 슬래시를 원하는을, 슬래시 없습니다. 필요하다 시작 및 종료 파이프 (또는 정규식에 대한 또 다른 구분)
$x = "hello world 1007;";
echo preg_replace('|(\D)(\s+)(\d+)(;)|','$1,$3',$x);
echo preg_replace('/(\D)(\s+)(\d+)(;)/','$1,$3',$x);
echo preg_replace('{(\D)(\s+)(\d+)(;)}','$1,$3',$x);
시작과 끝 구분 기호로 사용할 수 있다는 것을 몰랐습니다. 감사합니다. – samjudson
내가 올바르게 기억, 시작 - 최종의 패턴 상징합니다 ('|')이 항공사는 PHP 필요합니다 preg_ * 함수. –
좋은 지적 - 나는 또한 백 슬래시를 벗어나는 것을 잊었다. – samjudson