c# 正则表达式

babycat0806 2010-11-03 12:27:09
用c#写一个正则表达式,一个字符串中如果包含全角符号就return false
即在要检查的字符串中,符号只允许是半角的(注意是包含,不是仅限制字符串是符号)
...全文
115 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-11-03
  • 打赏
  • 举报
回复
按照这个博客中描述的。日文范围是
日文平假名:3040-309F
日文片假名:30A0-30FF
你这个要求最终的正则修改为


(?![\u4E00-\u9FA5\u3040-\u309F\u30A0-\u30FF])[^\x00-\xff]
bourbon1795 2010-11-03
  • 打赏
  • 举报
回复
            string str="asdfsadfas;";
if (Regex.IsMatch(str, "^[^\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329\u232A\u2E80-\u303E\u3040-\u4DBF\u4E00-\uA4CF\uA960-\uA97F\uAC00-\uD7FF\uF900-\uFAFF\uFE10-\uFE1F\uFE30-\uFE6F\uFF01-\uFF60\uFFE0-\uFFE7]*$"))
{
Console.Write("true");
}
兔子-顾问 2010-11-03
  • 打赏
  • 举报
回复
去掉中文的如下,日文的范围不知道。网上说法不统一。
(?![\u4E00-\u9FA5])[^\x00-\xff]
如果你搜索到日文的范围可以扩充,例如
(?![\u4E00-\u9FA5日文开始-日文结束])[^\x00-\xff]
babycat0806 2010-11-03
  • 打赏
  • 举报
回复
但是我想要只把全角的字符排除,可是如果是日文和汉字等也在[^\x00-\xff]范围内,那要怎么办?
兔子-顾问 2010-11-03
  • 打赏
  • 举报
回复
判断是半角
[\x00-\xff]
判断是全角
[^\x00-\xff]

至于怎么return false。还是问题么?

if(Regex.IsMatch(str,"[^\x00-\xff]"))//有全角

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧