编写包括中文字、英文字母、数字、连接号和下划线的正则表达式中的疑问
1个回答
展开全部
这里有两个问题需要先搞清楚,
首先,用\w实现汉字的匹配是受你的操作系统和语言环境影响的,
大部分语言环境下\w相当于[A-Za-z0-9_],
也就是仅匹配任意一个字母或数字或下划线。
其次,“[]”括起来的形式在正则中表示字符集合,字符集中只有4个
字符具有特殊含义:“]”代表字符集定义的结束;“\”代表转义;“^”代表取反;“-”代表范围定义。
在中括号中使用特殊字符时要转义,其他都是普通字符,不用转义。所以如果你的本意是匹配若干\w或若干-,写成[\w\-]*就可以了。
至于/^(\w*)|(-*)]*$/我猜你是想问/^[(\w*)|(-*)]*$/,这个同样错在没搞明白“[]”中的特殊字符。这样写的意义就成了匹配任意字母或数字或下划线、小括号、“|”以及“(”到“*”间所有字符。
“|”的含义,“|”在“[]”外时表示或,在“[]”里时表示这个字符本身。
首先,用\w实现汉字的匹配是受你的操作系统和语言环境影响的,
大部分语言环境下\w相当于[A-Za-z0-9_],
也就是仅匹配任意一个字母或数字或下划线。
其次,“[]”括起来的形式在正则中表示字符集合,字符集中只有4个
字符具有特殊含义:“]”代表字符集定义的结束;“\”代表转义;“^”代表取反;“-”代表范围定义。
在中括号中使用特殊字符时要转义,其他都是普通字符,不用转义。所以如果你的本意是匹配若干\w或若干-,写成[\w\-]*就可以了。
至于/^(\w*)|(-*)]*$/我猜你是想问/^[(\w*)|(-*)]*$/,这个同样错在没搞明白“[]”中的特殊字符。这样写的意义就成了匹配任意字母或数字或下划线、小括号、“|”以及“(”到“*”间所有字符。
“|”的含义,“|”在“[]”外时表示或,在“[]”里时表示这个字符本身。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询