정규식-특정 문자를 포함하지 않습니다


274

문장의 어딘가에 <또는>가 없으면 일치하는 정규식이 필요합니다.

<또는>가 문자열에 있으면 false를 리턴해야합니다.

내 <>가 시작 또는 끝에있는 경우에만 이것으로 부분적으로 성공했습니다.

(?!<|>).*$

차이가 나는 경우 .Net을 사용하고 있습니다.

도와 주셔서 감사합니다.

답변:


436
^[^<>]+$

문자 클래스의 캐럿 ( [^) 문자열의 하나 이상의 아무것도를 제외하고 시작이 수단이 일치하는 것을 의미하지만, 그렇게 <하고 >, 문자열의 다음 말을.


3
첫 번째 캐럿은 무엇을 의미합니까? 이것은 해당 문자를 포함하지 않는 것을 의미하지 않습니까? 따라서 해당 문자를 포함하는 문자열만을 의미합니까?
RobKohr

11
첫 번째 캐럿은 문자열의 시작을 의미합니다. 달러는 문자열의 끝을 의미합니다.
Ned Batchelder

2
@PhilipRego 특수 문자에주의하십시오 : 쉘은 일부 문자를 해석합니다. 디렉토리에 '] + $'라는 파일이 있는지 확인하십시오. 정규 표현식 전체를 작은 따옴표 안에 넣으면 작동합니다.
Ned Batchelder

좋은 답변입니다! 왜 +첫 번째 캐럿 이 있는지에 대한 설명을 추가 할 수 있습니까?
Dr_Zaszuś

1
@ Dr_Zaszuś "+"는 "하나 이상"을 의미하고 "^"은 "문자열의 시작"을 의미합니다.
Ned Batchelder

59

여기 있습니다 :

^[^<>]*$

이것은 아니 <거나없는 문자열을 테스트합니다.>

<and 가있을 수 >있지만 다른 것을 가지고 있어야 하는 문자열을 테스트 하려면 그냥 사용해야합니다

[^<>] (or ^.*[^<>].*$)

어디 [<>]수단 <또는>[^<>]수단 이 아닌 그 어떤 <> .

그리고 물론 필수 링크 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.