패턴과 일치하는 세미콜론으로 구분 된 문자열에서 첫 번째 사용자 권한을 추출하려고합니다.csv 문자열을 검색하고 자바 스크립트 정규식을 사용하여 일치를 반환하는 방법
사용자 권한 형식으로 저장됩니다 : 사용자가 어떤 권한이없는 경우 LAA;LA_1;LA_2;LE_3;
문자열이 비어 있습니다. 이 .*?;(LA_[^;]*)?.*
(그룹의 끝에있는 물음표 경우 사용자의 전체 라인을 일치하기 위해 사용 된이 가지고 있지 :
내 가장 좋은 방법은 지금까지 regex.replace 문에 다음과 같은 정규식을 사용하는 것입니다 오른쪽 빈 문자열로 대체 그녀가이 없음을 알리기 위해)
그러나,이 케이스 첫 번째 위치에 바로 검색에서 제대로 작동하지 않습니다. LA_1;LA_2;LE_3;
그것은이다 그냥 고칠 수있어. regex 바꾸기 전에 줄의 시작 부분에 세미콜론을 추가하지만 내 질문은 다음 정규식과 일치하지 않는 이유는 무엇입니까?
.*?(?:(?:^|;)(LA_[^;]*))?.*
지금까지 성공하지 않고 해결책을 찾을 수많은 다른 정규 표현식을 시도했습니다. 에서 (
function getFirstRight(rights)
{
return rights.split(";",1)[0] || "";
}
감사! 여하튼 나는 match-function을 간과했고 "쉬운 해결책"은 여전히 버그를 가지고있었습니다. :) 나는 당신의 아이디어를 actionscript3에 이식했고 이제 다음과 같은 형식을 가지고 있습니다 : ' public function getRole() : String { (LA _ [^;] *) /. test (this._rightsList)))? this._rightsList.일치 (/ (^ |;) (LA _ [^;] *) /) [2] : ""; } ' –