【转】正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度

【转】正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度

using System.Text.RegularExpressions;

匹配中文:[\u4e00-\u9fa5] 

英文字母:[a-zA-Z] 

数字:[0-9] 

匹配中文,英文字母和数字及_: 
^[\u4e00-\u9fa5_a-zA-Z0-9]+$

同时判断输入长度:
[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}

^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$ 1、一个正则表达式,只含有汉字、数字、字母、下划线不能以下划线开头和结尾:
^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$  其中:
^  与字符串开始的地方匹配
(?!_)  不能以_开头
(?!.*?_$)  不能以_结尾
[a-zA-Z0-9_\u4e00-\u9fa5]+  至少一个汉字、数字、字母、下划线
$  与字符串结束的地方匹配

放在程序里前面加@,否则需要\\进行转义 @"^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$"
(或者:@"^(?!_)\w*(?<!_)$"    或者  @" ^[\u4E00-\u9FA50-9a-zA-Z_]+$ "  )

2、只含有汉字、数字、字母、下划线,下划线位置不限:
^[a-zA-Z0-9_\u4e00-\u9fa5]+$

3、由数字、26个英文字母或者下划线组成的字符串
^\w+$

4、2~4个汉字
@"^[\u4E00-\u9FA5]{2,4}$"; 

5、
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$

用:(Abc)+    来分析:  XYZAbcAbcAbcXYZAbcAb

XYZ AbcAbcAbcXYZ AbcAb6、
[^\u4E00-\u9FA50-9a-zA-Z_]
34555#5' -->34555 #5 '

[\u4E00-\u9FA50-9a-zA-Z_]    eiieng_89_   --->   eiieng_89_
_';'eiieng_88&*9_    -->  _';'eiieng_88&*9_
_';'eiieng_88_&*9_  -->  _';'eiieng_88_&*9_

public  bool RegexName(string str)
{
bool flag=Regex.IsMatch(str,@"^[a-zA-Z0-9_\u4e00-\u9fa5]+$");
return  flag;
}

Regex   reg=new   Regex("^[a-zA-Z_0-9]+$");   
if(reg.IsMatch(s))   
{   
\\符合规则   
}   
else   
{   
\\存在非法字符   
}

最长不得超过7个汉字,或14个字节(数字,字母和下划线)正则表达式

^[\u4e00-\u9fa5]{1,7}$|^[\dA-Za-z_]{1,14}$

 

常用正则表达式大全!(例如:匹配中文、匹配html)

 匹配中文字符的正则表达式: [u4e00-u9fa5]   
  评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 
  匹配双字节字符(包括汉字在内):[^x00-xff] 
  评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 
  匹配空白行的正则表达式:ns*r 
  评注:可以用来删除空白行 
  匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? /> 
  评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力 
  匹配首尾空白字符的正则表达式:^s*|s*$ 
  评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 
  匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
  评注:表单验证时很实用 
  匹配网址URL的正则表达式:[a-zA-z]+://[^s]* 
  评注:网上流传的版本功能很有限,上面这个基本可以满足需求 
  匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
  评注:表单验证时很实用 
  匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 
  评注:匹配形式如 0511-4405222 或 021-87888822 
  匹配腾讯QQ号:[1-9][0-9]{4,} 
  评注:腾讯QQ号从10000开始 
  匹配中国邮政编码:[1-9]d{5}(?!d) 
  评注:中国邮政编码为6位数字 
  匹配身份证:d{15}|d{18} 
  评注:中国的身份证为15位或18位 
  匹配ip地址:d+.d+.d+.d+ 
  评注:提取ip地址时有用 
  匹配特定数字: 
  ^[1-9]d*$    //匹配正整数 
  ^-[1-9]d*$   //匹配负整数 
  ^-?[1-9]d*$   //匹配整数 
  ^[1-9]d*|0$  //匹配非负整数(正整数 + 0) 
  ^-[1-9]d*|0$   //匹配非正整数(负整数 + 0) 
  ^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数 
  ^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数 
  ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数 
  ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0) 
  ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0) 
  评注:处理大量数据时有用,具体应用时注意修正 
  匹配特定字符串: 
  ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串 
  ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串 
  ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串 
  ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串 
  ^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串 
  在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下: 
  只能输入数字:“^[0-9]*$” 
  只能输入n位的数字:“^d{n}$” 
  只能输入至少n位数字:“^d{n,}$” 
  只能输入m-n位的数字:“^d{m,n}$” 
  只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$” 
  只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$” 
  只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$” 
  只能输入非零的正整数:“^+?[1-9][0-9]*$” 
  只能输入非零的负整数:“^-[1-9][0-9]*$” 
  只能输入长度为3的字符:“^.{3}$” 
  只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$” 
  只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$” 
  只能输入由26个小写英文字母组成的字符串:“^[a-z]+$” 
  只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$” 
  只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$” 
  验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间, 
  只能包含字符、数字和下划线。 
  验证是否含有^%&',;=?$"等字符:“[^%&',;=?$x22]+” 
  只能输入汉字:“^[u4e00-u9fa5],{0,}$” 
  验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$” 
  验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$” 
  验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$” 
  正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”, 
  “XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。 
  验证身份证号(15位或18位数字):“^d{15}|d{}18$” 
  验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12” 
  验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$” 
  正确格式为:“01”“09”和“1”“31”。 
  匹配中文字符的正则表达式: [u4e00-u9fa5] 
  匹配双字节字符(包括汉字在内):[^x00-xff] 
  匹配空行的正则表达式:n[s| ]*r 
  匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/ 
  匹配首尾空格的正则表达式:(^s*)|(s*$) 
  匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
  匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)? 
  (1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 
  String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;} 
  (2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现 
  String.prototype.trim = function() 
  { 
  return this.replace(/(^s*)|(s*$)/g, ""); 
  } 
  (3)应用:利用正则表达式分解和转换IP地址 
  function IP2V(ip) //IP地址转换成对应数值 
  { 
  re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式 
  if(re.test(ip)) 
  { 
  return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1 
  } 
  else 
  { 
  throw new Error("Not a valid IP address!") 
  } 
  } 
  (4)应用:从URL地址中提取文件名的javascript程序 
  s="http://www.9499.net/page1.htm"; 
  s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2") ;//Page1.htm 
  (5)应用:利用正则表达式限制网页表单里的文本框输入内容 
  用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,'))" 
  用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,'))" 
  用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^d]/g,') "onbeforepaste= "clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,'))" 
  用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[W]/g,') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,'

<think>首先,用户的问题是:“我想查找只验证数字、字母英文逗号的正则表达式 请问用于验证只包含数字、字母英文逗号的正则表达式”。用户要求一个正则表达式,用于验证字符串是否只包含数字、字母英文逗号。 从系统指令中,我需要: - 使用$...$格式表示行内数学表达式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,例如 [^1]。 用户提供了站内引用: - 引用[1]:关于正则表达式的概述。 - 引用[2]:电话号码正则表达式示例。 - 引用[3]:IP地址正则表达式示例。 这些引用不是直接相关的,但用户说“上述引用仅供参考”,所以我应该基于用户的需求构建回答。用户想要的正则表达式是验证只包含数字、字母英文逗号。 关键点: - 数字:0-9 - 字母:a-z, A-Z - 英文逗号:, 所以,正则表达式需要匹配一个字符串,其中每个字符都是数字、字母或逗号。 在正则表达式中: - 数字用 \d 或 [0-9] 表示 - 字母用 [a-zA-Z] 表示 - 逗号用 , 表示(在字符串中直接写,但可能需要义) 为了匹配整个字符串只包含这些字符,我需要: - 使用锚点 ^ 表示字符串开始,$ 表示字符串结束。 - 字符类:[a-zA-Z0-9,] 匹配一个字符是字母、数字或逗号。 - 加上 * 或 + 来匹配零个或多个(或一个或多个)字符。 用户说“验证只包含”,意思是字符串必须只包含这些字符,可能允许空字符串?通常验证时可能允许空字符串,除非指定。我应该考虑是否允许空字符串。 正则表达式:^[a-zA-Z0-9,]*$ 或 ^[a-zA-Z0-9,]+$ 取决于是否允许空字符串。 - ^[a-zA-Z0-9,]*$ :匹配空字符串或以数字、字母、逗号组成的字符串。 - ^[a-zA-Z0-9,]+$ :匹配至少一个字符的字符串。 用户没有指定是否允许空字符串,所以我应该提供选项或说明。 在正则表达式中,逗号 , 是一个特殊字符吗?在字符类中,它不需要义,因为 [ ] 内的逗号不是元字符。所以可以直接写 [a-zA-Z0-9,]。 使用 \d 代替 [0-9] 也是可以的,但 \d 可能匹配更多字符,如其他数字,但在标准正则表达式中,\d 通常等同于 [0-9]。 所以,正则表达式可以是:^[a-zA-Z0-9,]*$ 或类似的。 现在,构建回答: - 结构清晰:介绍正则表达式,解释它,然后给出代码示例。 - 使用中文。 - 在回答中引用:用户提供了引用[1],[2],[3],但我只在必要时引用。引用[1]是关于正则表达式的概述,所以如果我在解释中引用它,可以添加 [^1]。但用户说“上述引用仅供参考”,所以我可能不需要强制引用,但为了遵循指令,我应该自然地添加引用。 指令说:“回答中引用的段落末尾自然地添加引用标识”,所以如果我提到引用内容,就添加。 例如,在介绍正则表达式时,可以引用引用[1]。 - 生成相关问题:在最后添加“§§相关问题§§”部分。 回答结构: 1. 介绍问题:用户需要验证只包含数字、字母英文逗号的正则表达式。 2. 解释正则表达式:描述字符类。 3. 给出正则表达式:使用行内格式或独立格式?用户要求行内数学表达式用$...$,但正则表达式不是数学公式,它是文本。指令是针对数学表达式的。我应该检查指令。 指令说:“所有行内数学表达式(包括变量、不等式、方程等)必须使用$...$格式”,但正则表达式不是数学表达式。它可能被视为代码。 在示例中,快速排序是代码块。类似地,正则表达式应该放在代码块中。 看示例: - 快速排序部分有代码块:```python ... ``` - 没有使用$...$ 数学格式。 所以,对于正则表达式,我应该用代码块或行内代码,不是数学格式。 指令说:“独立公式必须使用$$...$$格式”,但正则表达式不是公式。 我认为正则表达式用代码块处理。 在用户提供的引用[2][3]中,有正则表达式示例,它们是文本形式。 所以,在我的回答中,我可以用行内代码或代码块。 为了清晰,使用代码块。 现在,正则表达式: - 基本:^[a-zA-Z0-9,]*$ 用于允许空字符串。 - 或 ^[a-zA-Z0-9,]+$ 用于不允许空字符串。 我应该提供两者并解释。 在引用[2],有电话号码正则表达式,使用 ^...$ 格式。 类似地。 添加解释: - [a-zA-Z0-9] 匹配字母数字。 - , 匹配逗号。 - * 匹配零个或多个。 - + 匹配一个或多个。 - ^ $ 确保整个字符串匹配。 生成相关问题: - 有关正则表达式的常见问题。 例如: 1. 如何验证是否包含特定字符? 2. 正则表达式中的字符类是什么? 3. 如何义特殊字符? 最后,添加引用:如果在回答中使用了引用内容。 例如,在介绍正则表达式时,可以说:“正则表达式是一种文本模式匹配工具 。” 然后添加引用标识。 引用[1] 描述正则表达式,所以可以引用。 引用[2][3]是具体示例,不直接相关,所以可能不需要引用。 所以,计划回答: - 开头:介绍正则表达式用于验证字符串只包含数字、字母英文逗号。 - 解释:使用字符类 [a-zA-Z0-9,],锚点确保整个字符串匹配。 - 给出正则表达式:在代码块中。 - 提供选项:允许空字符串或不。 - 结束:生成相关问题。 </think> ### 验证只包含数字、字母英文逗号的正则表达式 根据您的需求,您需要一个正则表达式来验证字符串是否只包含数字(0-9)、字母(a-z, A-Z)英文逗号(,)。正则表达式是一种强大的文本模式匹配工具,用于检查字符串是否符合特定规则 。下面我将逐步解释并给出相应的正则表达式。 #### 步骤解释 1. **字符类定义**:正则表达式使用方括号 `[...]` 定义字符类,匹配其中任意一个字符。 - 数字:用 `[0-9]` 或 `\d` 表示(`\d` 等同于 `[0-9]`)。 - 字母:用 `[a-zA-Z]` 表示(覆盖小写大写字母)。 - 英文逗号:直接用 `,` 表示(在字符类中,逗号不需要义)。 - 组合字符类:`[a-zA-Z0-9,]` 匹配任意一个数字、字母或逗号。 2. **匹配整个字符串**:使用锚点 `^`(字符串开始) `$`(字符串结束)确保整个字符串只包含这些字符。 - 匹配零个或多个字符:用 `*`(允许空字符串)。 - 匹配一个或多个字符:用 `+`(至少有一个字符,不允许空字符串)。 3. **正则表达式选项**:根据是否允许空字符串,提供两个常用版本: - **允许空字符串**:正则表达式匹配空字符串或以数字、字母、逗号组成的任意字符串。 ```regex ^[a-zA-Z0-9,]*$ ``` 或使用 `\d` 简写: ```regex ^[a-zA-Z\s\d,]*$ ``` (注意:`\d` 等同于 `[0-9]`,但为了清晰,推荐显式写法。) - **不允许空字符串**:正则表达式要求字符串至少包含一个字符(数字、字母或逗号)。 ```regex ^[a-zA-Z0-9,]+$ ``` #### 示例说明 - **有效字符串**:`"abc123,def"`(包含字母、数字逗号)或 `"hello,world"`。 - **无效字符串**:`"abc@123"`(包含特殊字符 `@`)或 `"text with space"`(包含空格)。 - 在编程中应用:您可以在 Python、JavaScript 等语言中使用此正则表达式进行验证。例如在 Python 中: ```python import re def validate_string(s): pattern = r'^[a-zA-Z0-9,]*$' # 允许空字符串的版本 return bool(re.match(pattern, s)) print(validate_string("test,123")) # 输出: True print(validate_string("error@")) # 输出: False ``` 如果字符串匹配,返回 `True`;否则返回 `False` 。 #### 注意事项 - **字符范围**:正则表达式 `[a-zA-Z0-9,]` 严格匹配字母(a-z, A-Z)、数字(0-9)逗号。如果字符串包含其他字符(如空格、下划线或特殊符号),将不匹配。 - **性能**:此表达式简单高效,时间复杂度为 O(n),其中 n 是字符串长度,适合大多数验证场景。 - **引用说明**:正则表达式的基本概念结构参考了相关文档 ,但本表达式是根据您的需求定制的。 如果您需要调整(如添加其他字符或修改空字符串规则),请提供更多细节!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值