문화적으로 독립적 인 방식으로 단어는 있지만 문자는 일치시키지 않으려면 어떻게해야합니까?정규식 단어 일치
\w
은 단어 또는 숫자와 일치하지만 숫자는 무시하고 싶습니다. 따라서 \w\s
이있는 "111 or this"는 작동하지 않습니다.
나는 "this"만 얻고 싶습니까? 그리고 나는 {^[A-Za-z]+$}
이 해결책이 아닐 것이라고 생각한다. 왜냐하면 독일어 알파벳에 몇 가지 추가 문자가 있기 때문이다.
문화적으로 독립적 인 방식으로 단어는 있지만 문자는 일치시키지 않으려면 어떻게해야합니까?정규식 단어 일치
\w
은 단어 또는 숫자와 일치하지만 숫자는 무시하고 싶습니다. 따라서 \w\s
이있는 "111 or this"는 작동하지 않습니다.
나는 "this"만 얻고 싶습니까? 그리고 나는 {^[A-Za-z]+$}
이 해결책이 아닐 것이라고 생각한다. 왜냐하면 독일어 알파벳에 몇 가지 추가 문자가 있기 때문이다.
정규식은 [^ \ d \ s] +라고 생각합니다. 즉, 숫자 또는 공백 문자가 아닙니다.
이 일치하는 단어를 작동합니다 :
\b[^\d\s]+\b
내역 :
이 특별히 "숫자와 공백 (같은"단어 "를 제외하고 단어 경계로 구분되어 아무것도 일치합니다\b - word boundary
[ - start of character class
^ - negation within character class
\d - numerals
\s - whitespace
] - end of character class
+ - repeat previous character one or more times
\b - word boundary
aa? aa! aa "가 일치합니다). 당신은뿐만 아니라 다음을 제외 할 경우
또는, 당신은 사용할 수 있습니다
\b[\p{L}\p{M}]+\b
내역 :
\b - word boundary
[ - start of character class
\p{L} - single code point in the category "letter"
\p{M} - code point that is a combining mark (such as diacritics)
] - end of character class
+ - repeat previous character one or more times
\b - word boundary
내가이 사용하는 것이 좋습니다 것입니다 :
foundMatch = Regex.IsMatch(SubjectString, @"\b[\p{L}\p{M}]+\b");
을 어느 것 모든 유니 코드 문자 만 일치시킵니다.
@ Oded의 대답이 효과가있을 수도 있지만 역시 일치합니다 : p+ü+üü++üüü++ü
정확하게 일치하지는 않습니다.
설명 :
"
\b # Assert position at a word boundary
[\p{L}\p{M}] # Match a single character present in the list below
# A character with the Unicode property “letter” (any kind of letter from any language)
# A character with the Unicode property “mark” (a character intended to be combined with another character (e.g. accents, umlauts, enclosing boxes, etc.))
+ # Between one and unlimited times, as many times as possible, giving back as needed (greedy)
\b # Assert position at a word boundary
"
사용이 표현 \b[\p{L}\p{M}]+\b
. 지정된 범주의 유니 코드 문자 (코드 포인트)를 일치시키기 위해 잘 알려진 표기법을 사용합니다. 따라서 \p{L}
은 모든 문자와 일치하며 모든 조합 기호와 일치하는 \p{M}
입니다. 경우에 따라 악센트 부호가있는 문자가 두 개의 코드 포인트 (문자 자체 + 결합 기호)로 인코딩 될 수 있으며 \p{L}
만으로 이러한 경우 하나만 일치하므로 후기가 필요합니다.
또한 국제 문자가 포함될 수있는 단어의 일반적인 표현이기도합니다. 예를 들어 한 번에 여러 단어를 일치 시키거나 숫자로 끝나는 단어를 허용해야하는 경우이 패턴을 그에 따라 수정해야합니다.
'또는'이 하나의 일치 또는 2로 취급해야합니까? –
패턴 "word1 word2"에 대해 일치를 얻고 싶습니다. "mark1 is 1"은 "mark1 is"에 대해 1 개의 일치를 제공해야합니다. 또한 "내 생일은 11/08/2000입니다."는 "내 생일"과 "생일"이 일치해야합니다 (날짜가 일치하지 않아야 함). – Nickolodeon