파서를 사용하지 않고 CSV 파일에서 한 행을 추출하려고하고 있습니다. PHP를 사용하여 쉼표를 기준으로 문자열을 분할해야합니다. . 입력에 쉼표가 없다면 그 자체로는 매우 쉽습니다. 큰 따옴표로 묶인 쉼표를 무시하고 싶습니다. 완전히 마지막 문장을 무시 Regex : 큰 따옴표가 0 번 또는 홀수 번 반복 된 후 일치 ','
, 나는 다음 문제 자체를 변경하기로 결정 : 나는 더 큰 따옴표 앞에 나 큰 따옴표 쌍을 흩어져 쉼표에 따라 문자열을 분할 할.
예 : *이 일치하고 X입니다
text,"some,"chars,chars"more,""text",
* x * x *
는 없습니다.
정규 표현식의 기능을 넘어서는가? 그렇지 않은 경우 이런 종류의 입력을 처리 할 수있는 정규 표현식이 있습니까?
입니까? 덧붙여 말하자면 "within"이 이스케이프되어야하거나 "some"와 같은 blob을 가지고있을 때 적절하게 인용되지 않은 문자가 –
일 수 있으니 예제 문자열은 유효하지 않을 수 있습니다. 'fgetcsv()'와 같은 것을 사용하면보다 쉽게 파싱을 할 수 있습니다. – Arjan
할 수 있습니다. 실제로 하나는 가지고 있지만 표준 CSV 규칙에 더 부합합니다. 이스케이프 변형 및 값어치가 혼합 된 따옴표/인용되지 않은 문자열 부분이 아닙니다. – mario