PHP에서 문자열을 구문 분석하고 하위 문자열을 배열에 저장하려고합니다. 다음과 같이 문자열의 형식은 다음과 같습니다정규 표현식을 사용하는 PHP의 선택적 부분 문자열
이@SomeText1 ;SomeText2 $SomeText3 #SomeText4
는 (이하 "SomeText"문자열이 @ 포함하지 않습니다, 즉 문제가되지, 그래서 $ # 문자)
내가 SomeText1, SomeText2을 추출 할, ... PHP를 별도로 사용하지만 catch가 있습니다. ";" 선택 사항입니다. 따라서 일부 예제 문자열은 다음과 같을 수 있습니다.
@ SomeText1 ; SomeText2
@ SomeText1 # SomeText4
@ SomeText1 $ SomeText3 # SomeText4
나는이 작업을 완전히 수행하지 못했습니다.
여기에 대한 답변을 찾으려고했지만 가장 가까운 찾을 수 (Matching an optional substring in a regex) 및 (Regex to capture an optional group in the middle of a block of input), 내 사례에 적용 할 때 실패했습니다.
대단히 감사합니다.
'/@ *(\w+)(?: *; *(\w+))?/'
을 그리고 당신이 문자열 (일치하는 그룹)에 대한 matches[1] and matches[2]
을 찾습니다
'$ 배열 = preg_split를 ('/ \ *이 s의 [; $ #] \의 * /', $ 텍스트); 거기에'@'를 추가하고 원한다면 첫 번째 요소를 무시하십시오. @ Qtax 완료. – Qtax
. 답변으로 제출해 주시면 기꺼이 수락하겠습니다. – user3208442