能够匹配日文以及代码中的一切东西,但是不可以有中文及其他语言的字符
比如:
String str1 = new String();//ありがとうございます
这样的一行代码是可以匹配出来的我是要做代码分析工具,功能之一是查找代码中是否有非法字符(中文,以及小日本看不懂的其他文字)我是真心写不出来啊急求!!再次感谢!!
比如:
String str1 = new String();//ありがとうございます
这样的一行代码是可以匹配出来的我是要做代码分析工具,功能之一是查找代码中是否有非法字符(中文,以及小日本看不懂的其他文字)我是真心写不出来啊急求!!再次感谢!!
static void Main(string[] args)
{
//^[\u4e00-\u9fa5a-zA-Z\d_,\.!\r\n]+$
//[\u0800-\u4e00]
string str = "String str = new String(); ";
if (Judge(str))
Console.Write("属于日文");
else
Console.Write("不属于日文");
Console.Read();
} public static bool Judge(string text) {
Regex regWord = new Regex(
@"^[\u0800-\u4e00]+$",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.IgnorePatternWhitespace
| RegexOptions.Compiled
); if (regWord.IsMatch(text))
return true;
return false;
}
这是我用的代码
^[\u0800-\u4e00\W]+$
这个也不行
^[\u0800-\u4e00\W_a-zA-Z\d]+$
{
string temp = Punctuation.QuestionMark;
text = text.Replace(temp, DBDEF.ST_DEF);
Encoding japan = Encoding.GetEncoding(CodeConst.JapanCode);
Encoding unicode = Encoding.UTF8;
byte[] unicodeBytes = unicode.GetBytes(text);
byte[] japanBytes = Encoding.Convert(unicode, japan, unicodeBytes);
char[] asciiChars = new char[japan.GetCharCount(japanBytes, 0, japanBytes.Length)];
japan.GetChars(japanBytes, 0, japanBytes.Length, asciiChars, 0);
string asciiString = new string(asciiChars); if (asciiString.Contains(Punctuation.QuestionMark)) {
return true;
}
return false;
}以上是我的解决方法,也希望其他同学每次自己解决了一个问题后,能够把解决方案和大家共享