2009-11-19 5 views
0

.NET 응용 프로그램 (C#으로 작성)에서 목록에 표시된 내용을 필터링하기 위해 필터 문자열을 입력하는 데 사용되는 목록과 텍스트 상자가있는 UI가 있습니다. 사용자 유형에 따라 필터를 새로 고칩니다.예외를 포착하지 않고 정규 표현식을 확인 하시겠습니까?

이제는 필터 문자열에 정규 표현식을 사용할 수있게하고 싶습니다. 문제가 있습니다. 사용자가 표현식을 입력 할 때, 예를 들어 여는 괄호가 입력 된 시간과 닫는 괄호가 입력 된 시간 사이에 유효하지 않을 수 있습니다. 유효하지 않은 표현식으로 정규 표현식을 새로 작성하면 예외가 발생하고 이것을 방지하려고합니다. 한 가지 방법은 예외를 잡는 것입니다하지만 실제로 정규 표현식을 사용하여 정규식을 새로 시도하지 않고식이 올바른 정규식인지 확인하는 방법이 있는지 궁금합니다.

+2

정규 표현식을 검증하는 정규식이 필요하다는 소리가납니다. – GraemeF

+0

그 생각은 내 마음을 넘어 뜨 렸지만 갑작스런 두통을 불러 일으켰습니다. :) –

+0

너무 열심히 응? '^. + $'당신이 있습니다 : D –

답변

5

그냥 예외를 잡으십시오. 이것이 사용자 입력에 대한 응답으로 발생한다는 것을 감안할 때 상당한 성능 저하가 없을 것입니다.

+0

나는이 길로 갈거야. –

1

사용자가 정규식을 시작한다는 것을 나타 내기 위해 사용자가 입력하는 특별한 시작 문자가 있습니다. 그 시점에서 특수 문자가 입력 될 때까지 입력 된 텍스트의 실시간 처리를 중지 할 수 있습니다. 정규식을 적용합니다.

+0

완전히 합의하고 모범 사례입니다. 그냥 말해; "Regex를 사용하려면'rxstart (YOUR REGEX HERE) rxend'를 입력하고'rxstart ('와') rxend '를 구문 분석하십시오. 그 사이에있는 모든 것은 정규 표현식으로 정의되고 테스트됩니다. 국가 "나는 지금 정규식을 입력하고있다." –

관련 문제