파이프로 구분 된 값의 문자열 ($psv
이라고 함)이 있으면이 파이프로 분할하고 배열을 채울 수 있기를 원합니다. 그러나 문자열에는 이스케이프 처리 된 파이프 (\|
)와 이스케이프 처리 된 이스케이프 (\\
)가 포함될 수 있습니다. 둘 다 단순한 리터럴로 간주됩니다. 내가 마음에이 문제에 대한 몇 가지 솔루션이 있습니다이스케이프 시퀀스가 포함 된 문자열의 순수 정규식 분할이 있습니까?
- ,하지-그렇지 않으면
$psv
,split(/\|/, $psv)
에서 발견 어떤 임의의 문자열을 모두 이스케이프 시퀀스를 교체$psv
을 통해 원래의 문자를 - 루프를 다시 교체를 문자 부산물 문자
그리고 둘 다 작동한다고 생각합니다. 하지만 최대 도파민 홍수에 대해서, 나는 하나의 split()
전화만으로이 일을하고 싶습니다. 이것에 대한 정규 표현식이 있습니까?
"아니,하지만 여기에 하나의 추가 기능이 주어지면 그러한 정규 표현식이 어떻게 생겼는지가 중요합니다"라고 가정합니다. –
짝수 번호의 이스케이프를 허용하고 홀수로 거부하는 방식으로 번갈아 가며 접근 할 수 있습니다. – tchrist
@ RichardSimões 당신은이 답변을 사용할 수 있습니다 : http://stackoverflow.com/questions/8445634/php-regex-split-on-unescaped-delimiter - 역순으로 작동합니다. 단락 기호를 분리하는 대신 구분 기호가 아닌 것을 캡처합니다 . – Ariel