编写包括中文字、英文字母、数字、连接号和下划线的正则表达式中的疑问

/^[\w|-]*$/ 和 /^(\w*)|(-*)]*$/ 有什么区别??
/^(\w*)|(-*)]*$/ 还可以输入其它字符,为什么???
或 | 什么含义??

这里有两个问题需要先搞清楚,

首先,用\w实现汉字的匹配是受你的操作系统和语言环境影响的,
大部分语言环境下\w相当于[A-Za-z0-9_],
也就是仅匹配任意一个字母或数字或下划线。

其次,“[]”括起来的形式在正则中表示字符集合,字符集中只有4个 字符具有特殊含义:“]”代表字符集定义的结束;“\”代表转义;“^”代表取反;“-”代表范围定义。
在中括号中使用特殊字符时要转义,其他都是普通字符,不用转义。所以如果你的本意是匹配若干\w或若干-,写成[\w\-]*就可以了。

至于/^(\w*)|(-*)]*$/我猜你是想问/^[(\w*)|(-*)]*$/,这个同样错在没搞明白“[]”中的特殊字符。这样写的意义就成了匹配任意字母或数字或下划线、小括号、“|”以及“(”到“*”间所有字符。

“|”的含义,“|”在“[]”外时表示或,在“[]”里时表示这个字符本身。
温馨提示:内容为网友见解,仅供参考
无其他回答

...数字、连接号和下划线的正则表达式中的疑问
也就是仅匹配任意一个字母或数字或下划线。其次,“[]”括起来的形式在正则中表示字符集合,字符集中只有4个 字符具有特殊含义:“]”代表字符集定义的结束;“\\”代表转义;“^”代表取反;“-”代表范围定义。在中括号中使用特殊字符时要转义,其他都是普通字符,不用转义。所以如果你的本意是匹配若...

用户名只能包括中文字、英文字母、数字和下划线 禁止输入空格
以下是匹配“英文字母、数字和下划线”的职责表达式(包含首字母不能是数字)username ~=\/\\w[a-zA-Z0-9_]*\/ 但不能实现“中文字”的匹配。因为中文字的编码太广,也不知道具体有哪些!

浅说下划线与减号
在计算机领域,下划线与减号的使用主要体现在连接单词上,而实际行为与本质差异往往在于它们在"分词"上的不同。下划线被视为一个"单词",而减号则不然。在正则表达式中,\\w用来表示"单词"字符,包括大小写字母、数字和下划线,但不包含减号。这意味着在计算机世界里,下划线的地位高于数字,但低于字母。从...

js 正则表达式 ​var reg = \/(.*[0-9].*[0-9].*[0-9])\/ 是什么意思...
举例来说: \/^hll\/ 因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以 “hll”, “hll”或“hllhun”开头的字符串相匹配。 \/ar$\/ 因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以 “ar”, “bar”或“ar” 结尾的字符串相匹配。 \/\\bbm\/ 因为上述正则表达式模式以“\\b”定位符开...

word中文字数字混合怎么在数字后统一加标点word数字和文字一起的如何...
在Word中处理中文和英文字符混合的情况,并在数字后面统一添加标点,可以通过以下步骤来实现:使用查找替换功能:打开“查找替换”对话框(快捷键Ctrl+H)。在“查找内容”框中,输入正则表达式 ([0-9]+)([^\\\\d\\\\w])。在“替换为”框中,输入 \\\\1\\\\2。确保选择“使用通配符”或“使用正则表达式...

正则匹配的中文包括中文标点符号吗?
。 ; , : “ ”( ) 、 ? 《 》 这些标点符号。 正则表达式“\\un”匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\©匹配版权符号(©)。正则表达式匹配中文汉字 [\一-\龥] ,该表达式可以识别出任何汉字。但上述 \。 等匹配的符号不在范围内。

^([A-Za-z0-9])|([A-Za-z])+$ 这样的正则表达式错误的,主要值用来判断...
([_A-Za-z0-9]+\\.)+ 表示允许大于1个字母数字出现,后面跟 .[A-Za-z0-9] 表示允许2个或3个字母数字的组成的单词出现 下面的验证,根据你的修改了一些 \/^[^\\_][\\w\\-\\.]+@[\\w\\.]+[\\w]$\/ 之前 ^[^\\_][\\w\\-\\.]+ 排除下划线出现在用户名头位置,\\w表示所有字母和数字,...

求教C#正则表达式
在上面的例子中,我们接触到了一个元字符\\d,正如你所想的,正则表达式还有很多像\\d一样的元字符,下表列出了一些常用的元字符:元字符 说明. 匹配除换行符以外的任意字符\\b 匹配单词的开始或结束\\d 匹配数字\\s 匹配任意的空白符\\w 匹配字母或数字或下划线或汉字^ 匹配字符串的开始$ 匹配字符串的结束表1、常用...

正则表达式,只包含数字与连字符- 如何写?
1、首先使用正则表达式找到数字,用找到的数字的两倍值替换原数字。使用eplace() 方法的第二个参数为一个函数返回找到数字的两倍值的方法代码。2、使用正则表达式 \/\\d+\/g: 匹配至少一个数字的调用方法代码。3、测试输出的结果,如下图所示。4、取得的是数字 2014 和 2015,所以只要取得 arguments[...

求 正则定义表达式,包含5个原音字母的所有小写字母串,这些串中的原音按...
正则定义表达式如下:a[bcd]*e[fgh]* i[jklmn] *o[pqrst] * u[vwxyz]基于正则表达式可以测试字符串内模式,比如测试电话号码是否符合规则可以成为数据验证;替换文本,可以使用正则表达式识别文档中的特定文本,完全删除或者使用其他文本替换它。基于模式匹配从字符串中提取字符串。字符串是我们在编程中...

相似回答