正则表达式 \s*和\s*? 具体有什么区别?求认真解答 thanks

 我来答
计算机科普DD
高粉答主

2020-04-05 · 专注于ICT/互联网行业
计算机科普DD
采纳数:3 获赞数:8502

向TA提问 私信TA
展开全部

一、两种表达方式表达意义的区别:

1、\s代表正则表达式中的一个空白字符(可能是空格、制表符、其他空白)。

2、\\s代表字符\和字符s,因为\在正则中有特殊意义,所有需要转义,写成了\\ 。

二、表达的作用的区别:

1、\s用于匹配空白字符。

2、\\s用于匹配字符串中的\和s,两个字符。

扩展资料:

另外,正则表达式的() [] {}也有不同的意思

1、() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。

2、(\s*)表示连续空格的字符串。

3、[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。

4、{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。

(0-9) 匹配 '0-9' 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)

[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。 

[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。

5、过滤内容里面有数或空格数字

preg_replace("/\d{1,}\s{0,1}/", "xxxxxxxx", $signaturecontent);

参考资料来源:百度百科--正则表达式

种蘑菇的小男孩
推荐于2017-11-23 · TA获得超过142个赞
知道答主
回答量:56
采纳率:50%
帮助的人:20.6万
展开全部
这本质就是正则表达式的贪婪与非贪婪模式
1、贪婪模式:正则表达式一般趋向于最大长度匹配。
2、非贪婪模式:反之,取最小长度匹配
3、如何区分:在量词(* + ? {m,n})后面加上 ? 号,就是非贪婪模式

由于\s是匹配空格,不好说明,我们用下面的例子来说明:
正则表达式: \d+ 和 \d+?
字符串:asd12sd345
\d+匹配结果:12、345(尽可能多的匹配)
\d+?匹配结果:1、2、3、4、5(匹配最小数量,也就是1个)

那么,同理\s*和\s*?这俩的区别就是:
\s*:匹配0个或多个空格,会尽可能多的匹配
\s*?:匹配最小数量的空格,也就是0个空格
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5298263
2016-11-01 · TA获得超过967个赞
知道小有建树答主
回答量:1005
采纳率:94%
帮助的人:510万
展开全部
明白*和*?的区别就好了
*是贪婪模式,会尽可能匹配更多的字符
而*?是非贪婪模式 会尽量匹配少的字符
例子 假设字符串是121212
\d*2 会匹配到整个字符串 121212

而 \d*?2 会捕获到3个匹配组 分别是 12 12 12
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-11-01
展开全部
你这是什么里的正则表达式?
js? 还是别的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式