Ruby 正则表达式求解.

hlcfan · April 10, 2012 · Last by fenprace replied at April 14, 2012 · 2869 hits

String:@张三 你好 谢谢 大家好,如是字符串,怎么写正则表达式可以匹配 @张三 ,谢谢. 当然,张三也有可能是 张三丰 ,长度不限.(关键是后边那个空格.) 我正则表达式不是很好,刚才在http://rubular.com/搞了好长时间都无果。

(@.+?)\s+ 取出来\1就是

#1 楼 @hhuai 你好,这样最后会有个空格。因为有种情况:*@张三 * 之后就什么都没了。

零宽断言:

/@.+?\b/

#2 楼 @hlcfan 晕,不是让你取\1吗。

#4 楼 @hhuai 他的意思是,文本可能是这样的:

str = "@xxx"

#7 楼 @clearJiang 哇,大牛们好牛逼。我得好好学学. #3 :@.+?\b #7 :(?<=@)\S+

设定一个断言验证,这个 Ruby 1.8 也可以用。

/@\p{han}+(?=\s+)/

/@.+?(\b|$)/

加个分支不就行了?

You need to Sign in before reply, if you don't have an account, please Sign up first.