正则表达式 '/^\s*{(\w+)}\s*=/'怎么理解

关键是{(\w+)}这一句

第1个回答  2012-04-16
我认为,这里的{}只是普通匹配字符,为的就是匹配{fsadfa}=,何必要想得那么复杂,当成普通的字符就行了
当然,为了避免歧义,可以写成'/^\s*\{(\w+)\}\s*=/'追问

有没有什么依据啊?既然是变通字符、应该卜用加转义字符了吧。还是谢谢啊

追答

你不加转义字符也可以使用啊,加转义只是使自己或他人看得更明白,同时减少错误的产生,据我所知,正则元字符大括号{ }跟+,*,?一样都属于量词,表示匹配次数(当然必须类似{1,2},{1}这样的),除此之外,貌似还没有其他的释义,所以这里他中间匹配字母数字等我就只能当他为普通字符了,你也可以查查其他语言手册,也许有别的咱不知道的用法,共同学习

追问

其他的我都知道、就是在这儿没有理解得太明白、所以出来问吗、希望有机会能尽早弄懂、谢谢啊。过几天看有没有人回答、!

本回答被提问者采纳
第2个回答  2012-04-15
'/^\s*{(\w+)}\s*=/'
^ 行首匹配
\s 空格 制表符
{} 不清楚
(\w+) 匹配单词
= 应该匹配=这个字符
^\s*(\w+)\s*=
可以匹配像 wfjkdsa =这样的追问

关键就是要理解大括号啊!!!其他的我都知道!!谢谢了!!

第3个回答  2012-04-15
补充上楼,{(\w+)}是匹配 {…………} 大括号中的内容追问

但是、但是、像大括号{}一般用法卜是{2,3}表示两到三次,{2}表示两次,{2,}表示两次以上吗?这儿的大括号难道就是卜具有任何意义、仅仅代表一个字符被匹配?也就是说、{(\w+)}匹配{word}这样的字符串?大括号有这样的用法 吗?

相似回答