匹配[h***]的正则表达式怎么写?高分求助,回答的快切正确的话我会加分的。

***为三位数字……
我要拿到的是这个三位数字。

第1个回答  2012-12-17
直接说,正则的写法:

\d{3}
就可以了。
就可以用于匹配到,你这里连续的3个数字。

如果输入的内容还有其他可能,那么需要给出所有可能和规律,才能写出最精确的正则的。

对于正则不熟悉的,有兴趣可以参考:
crifan 正则表达式学习心得

(此处不给贴地址,只能靠你自己用google搜帖子标题,就可以找到帖子的地址了)追问

这个[h]没有匹配啊……麻烦大婶了……

追答

先说原理:
不给出详细的信息,没法写出合适的正则。
所以:

1.输入:给个所要处理的内容的例子,越多越好。以及对应的规律
2.输出:给出你要处理后的变成啥样的。

我才能写出你要的,精确的正则。

追问

一组HTML代码,需要找出以[h开头的,里边是个三位数的数字,然后是以]结束,我要拿到这个三位数字做替换内容。其实就是表情处理。将HTML代码转换成表情。

追答

是啊,你这么说,不就清楚了嘛。。。不早说,浪费大家表情。。。。o(╯□╰)o

正则的写法:
\[h(\d{3})\]
\[:用于匹配左中括号
(\d{3}):是一个组group,group内是匹配数字,个数限定为3个
\]:用于匹配右中括号

给\d{3}加上括号,这样就可以直接获得对应的group内的内容了,此处就是你要的3个数字。

你有空,还是去看看这个吧;
【教程】以Python中的re模块为例,手把手教你,如何从无到有,写出相对复杂的正则表达式

未必一次就懂,但是看懂思路,慢慢练习,就慢慢会自己写复杂的了。

追问

额外多问一下,这个正则表达式什么意思?
/\[[*\u4e00-\u9fa5]*?\]/g
谢谢啦,分肯定给你了。

追答

/\[[*\u4e00-\u9fa5]*?\]/g

/xxx/g的形式
是PHP,或字符处理工具中的正则的写法
g一般表示的是global==全局的意思

此处xxx是:
\[[*\u4e00-\u9fa5]*?\]
\[:匹配左括号
[*\u4e00-\u9fa5]*?是[xxx]*?的形式,表示:
xxx有0到多个,但是数量是尽量少
此处xxx是:
*\u4e00-\u9fa5
其中:
*:中括号内的星号,此处只表示星号本身
\u4e00-\u9fa5:一般常被用来表示去匹配中文字符

\]:用于匹配右中括号

所以,此处加起来的意思就是:
左中括号[ 开头,右中括号]结尾
括号中间是 星号* 或 中文字符,匹配的数目是,0或任意多个,但是尽量少

比如
[*大*家*好]
之类的。

追问

其实我要的是类似与这种判断的,只不过是取得数字。现在你这个判断得到的是个null……

追答

1.哪个判断?
2. 从什么输入中,得到的是null???

追问

啊,没事,我已经弄出来了,谢谢啦。把你的那个稍微改了一下就适合我这里的使用了。情况不一样,所以稍微改了点。谢谢,非常感谢。给你再加20分,这回赚的爽了吧……嘎嘎

追答

1.话说,你自己不把问题描述清楚,写出来的正则,不能使用,那就很正常了。
2.另外,我对分数无所谓,你要是缺分,我送你点也行。所以,你那句“给你再加20分,这回赚的爽了吧……嘎嘎”对我没用。
3.我回答你们问题,就是看到很多人乱回答,看不过,才来的。另外我写了够多的教程,就是用于给你们不懂的看的。对你们有帮助,才是我的目的。赚分,不是我的目的。

本回答被提问者采纳
相似回答