2010-04-24 5 views
3

이 정규식과 동일한 기능을 C#에서 찾을 수 있습니다.C#에 상응하는 Java Punctuation regex

자바 :

public static final String expression = "[\\s\\p{Punct}]"; 

{Punct}는 자바에서 예약 된 문자 클래스하지만 난는 .NET 정규식 엔진이 발프하지 않도록 해당 표현식을 작성하는 방법을 모르겠어요.

답변

3

[\s\p{P}]은 공백과 구두점을 모두 일치시킵니다. 재미있게도이 정확한 형태의 예제는 MSDN 설명서 Character Classes에 나와 있습니다. Java에서와 마찬가지로 \p{x}은 유니 코드 범주 x의 모든 단일 문자에 사용됩니다. P 이외의 가능성 목록은 Unicode Categories의 파트를 참조하십시오.

+0

ㅎ ... 나는 당신과 똑같은 해결책을 생각해 냈지만, 그렇게하면 효과가 없을 것이라고 지적 할 가치가 있습니다. 문자열 앞에'@'을 사용해야하거나 그렇지 않으면 백 슬래시를 이스케이프 처리해야합니다. –

+0

그래, 그거 생각 했으니 방금 인용 부호를 편집 했어. 이제 내 게시물은 리터럴 문자열 값을 참조합니다. C#에서 이러한 값을 나타내는 방법은 다른 문제입니다. ;-) 그런데 같은 이유로 질문의 문자열이 기술적으로 올바르지 않습니까? – Joren

+0

편집을 클릭하면 그가 [\\ s \\ p {Punct}] "'를 썼음을 알 수 있지만 형식이 잘못되었습니다. 나는 당신이 그가 의도 한 것을 볼 수 있도록 질문을 편집 할 것이다. –

3

사용이 : @의 특정 사용에

Regex regex = new Regex(@"[\s\p{P}]"); 

참고.