을 캡처하지, 내가 문자열을 니펫을 "언어"어떤 종류의 캡처 고군분투하는 것은 포함메이크업 정규식 수술실 캡처 그룹 그래서
언어 조각은 ()
안에있는 조합의 수 있습니다 En,Fr,De,Es,It
예 :
File (En,Fr,De,Es,It).doc <== should match all 5 languages
File (En,Fr) (Required).doc <== should match `En` and `Fr`
File (Enfoo,Fr).doc <== should match only `Fr`
File (E,Fr).doc <== should match only `Fr`
나의 현재 정규식 :
((\(|,)En(\)|,))|((\(|,)Fr(\)|,))|((\(|,)De(\)|,))|((\(|,)Es(\)|,))|((\(|,)It(\)|,))
그것은 무엇을 의미 하는가 :
다음((\(|,) <== either starts with `open parenthesis` or `comma` (1)
En <== the language (2)
(\)|,)) <== either ends with `close parenthesis` or `comma` (3)
난 그냥 정규식 OR
에 추가 (|)
당신이 볼 수있는 문제 : regexr.com/3ev6p입니다 그것을 원 제 2 외국어 조각 즉 Fr
가있는 경우 첫 번째 언어 스 니펫 En
이 이미 open parenthesis
또는 comma
을 캡처/점유하고 있기 때문에 제 2 언어 스 니펫 Fr
이 일치하지 않기 때문에 정규 표현식 (1)
을 만족하지 않습니다 ...
모든 언어 스 니펫을 완벽하게 처리하는 방법을 알고 계십니까? 나는이 모든 것을 얻기 위해 PHP의 preg_match_all()
을 사용할 계획이다. 누군가가 도울 수 있기를 바랍니다. 감사합니다.
내가 제대로 이해하고 있는지 확실하지 않지만 원하는 내용입니까? https://regex101.com/r/PAwqGg/1 – sinisake
이 http://regexr.com/3ev6s은 어떻습니까? –
@ Mi-Creativity, 모든 언어를 경계해야합니다. ;) – sinisake