求匹配数字、字母和?%&=-_这几个符号的正则表达式

希望测试过确实能用的,第一个能用的选为最佳哦,对了,我是要在javascript里用的... 希望测试过确实能用的,第一个能用的选为最佳
哦,对了,我是要在javascript里用的
展开
 我来答
Zjmainstay
推荐于2018-07-29 · 知道合伙人互联网行家
Zjmainstay
知道合伙人互联网行家
采纳数:580 获赞数:1129
http://www.zjmainstay.cn

向TA提问 私信TA
展开全部
/^[\w\?%&=\-_]+$/ 测试过了。测试用例私信给你。
讲解:
(1) \w代表 0-9a-zA-Z即你说的数字、字母
(2) \?%&=\-_ 匹配?%&=-_,而正则中?代表0个或1个,因此是特殊字符,加转义为\?,
正则中-代表多少到多少,如0-9,因此也是特殊字符,加转义为\-,
(3) +代表1个以上字符,也就是[\w\?%&=\-_]至少要有一个,
如果你要可以没有字符的话,改成[\w\?%&=\-_]*, 正则中*表示0个或多个(0,1,2...n)
(4) ^代表字符开始,$代表字符结束,若不加,test会测试任意匹配模式([\w\?%&=\-_]+)的
字符即返回true,也就是说只要你的字符串中有1个或以上[\w\?%&=\-_],它就会返回true,
所以,这里要加^[\w\?%&=\-_]+$限定,测试所有字符。
云上他
2012-09-18 · TA获得超过3551个赞
知道小有建树答主
回答量:1499
采纳率:0%
帮助的人:793万
展开全部
[\dA-Za-z?%&=_-]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
为什么什么是她
2012-09-18 · 超过11用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:24.6万
展开全部
@[a-zA-Z0-9\u4e00-\u9fa5]+
追问
不要匹配汉字
追答


“+”元字符规定其前导字符必须连续出现一次或多次 

= 比如/es+/ 
与“tesseessssseast12354haeasashaha”字符串相匹配,首先要与第一个字母e匹配,然后匹配s,s必须出现一次或多次,请看实例截图。 

“*”元字符规定其前导字符必须出现零次或连续多次 

= 比如/es*/ 
与“tesseessssseast12354haeasashaha”字符串相匹配,首先与第一个字母e匹配,后面的s出现零次或者连续出现,看实例。 

“?”元字符规定其前导对象必须连续出现零次或一次 

= 比如/es?/ 
与“tesseessssseast12354haeasashaha”字符串相匹配,首先与第一个字母e匹配,后面的s出现零次或者最多出现一次(就是最后一个字母s不重复出现)。 

 

 

 

示例代码:

 

$str = "tesseessssseast12354haeasashaha"; 

echo "=====".$str." 

"; 

echo "/es+/:".preg_replace("/es+/","-\\0-",$str)." 

"; 

echo "/es*/:".preg_replace("/es*/","-\\0-",$str)." 

"; 

echo "/es?/:".preg_replace("/es?/","-\\0-",$str)." 

"; 

?> 

 

 

执行结果截图

举一反三:

比如要替换连续多个空格为一个空格,我可以这样写:preg_replace("/\s+/"," ",$str);比如要找出字符串中的数字(整数):preg_replace("/\d+/", "(\\0)", $str); \\0是表示符合规则的字符串值

比如要找出字符串中的带小数点的数字:preg_replace("/\d+\.\d+/", "(\\0)", $str); //这里的“\.”表示输出小数点

找出由字母组成的字符串:preg_replace("/[a-zA-Z]+/", "(\\0)", $str)

找出由(字母、数字混合)组成的字符串:preg_replace("/([a-zA-Z]|\d)+/", "(\\0)", $str)

正则表达式中“或”运算,使用 “ | ”

例如上面的例子:找出由(字母或数字)混合组成的字符串([a-zA-Z]|\d) 也可以这样写([a-zA-Z]|[0-9]) 

“^”出现在 “[ ]”内时就被视做否定运算符;[^0-9]表示除了数字之外的任何字符。

而当“^”位于“[ ]”之外,或没有“[ ]”时,则应当被视做定位符。

定位符的意思就是比如:“^The”:开头一定要有”The”字符串;类似的:“en$”:$符号表示必须是en结尾。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式