정의 된 특정 문자 또는 문자 세트를 제외한 모든 문자와 일치하는 정규식을 정의 할 수 있습니까?
기본적으로 문자열을 쉼표 (,) 또는 세미콜론 (;)으로 나누고 싶었습니다. 그래서 나는 쉼표 또는 세미콜론을 만날 때까지 모든 것과 일치하는 정규식으로 그것을 생각하고있었습니다.
정의 된 특정 문자 또는 문자 세트를 제외한 모든 문자와 일치하는 정규식을 정의 할 수 있습니까?
기본적으로 문자열을 쉼표 (,) 또는 세미콜론 (;)으로 나누고 싶었습니다. 그래서 나는 쉼표 또는 세미콜론을 만날 때까지 모든 것과 일치하는 정규식으로 그것을 생각하고있었습니다.
답변:
[^,;]+
사용중인 정규식 구현을 지정하지 않았습니다. 그들 대부분 Split
은 구분 기호를 가져 와서 나누는 방법을 가지고 있습니다. 이 ^
클래스를 "정상" 문자 클래스 없이 사용할 수 있습니다 .
[,;]+
문자 클래스를 사용하십시오. 캐럿으로 시작하는 문자 클래스는 클래스에없는 것과 일치합니다.
[^,;]
용도 부정 문자 클래스를 :
[^,;]+
이것을 사용하십시오 :
([^,;]*[,;])*
(?:([^,;]*)(?:[^,;]|$))
'(비 캡슐 괄호가있는 PCRE)를 사용할 수 있습니다 . 필드 뒤 또는 쉼표 뒤에 쉼표 또는 세미콜론을 사용하면 작업이 향상됩니다. 빈 필드가 허용되는지 여부도 고려하십시오.