Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
888 views
in Technique[技术] by (71.8m points)

regex - Foreign language characters in Regular expression in C#

In C# code, I am trying to pass chinese characters: " 中文ABC123".

When I use alphanumeric in general using "^[a-zA-Z0-9s]+$",

it doesn't pass for "中文ABC123" and regex validation fails.

What other expressions do I need to add for C#?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

To match any letter character from any language use:

p{L}

If you also want to match numbers:

[p{L}p{Nd}]+

p{L} ... matches a character of the unicode category letter.
                it is the short form for [p{Ll}p{Lu}p{Lt}p{Lm}p{Lo}]
                  p{Ll} ... matches lowercase letters. (abc)
                  p{Lu} ... matches uppercase letters. (ABC)
                  p{Lt} ... matches titlecase letters.
                  p{Lm} ... matches modifier letters.
                  p{Lo} ... matches letters without case. (中文)

p{Nd} ... matches a character of the unicode category decimal digit.

Just replace: ^[a-zA-Z0-9s]+$ with ^[p{L}0-9s]+$


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...