String:@张三 你好 谢谢 大家好,如是字符串,怎么写正则表达式可以匹配 @张三 ,谢谢. 当然,张三也有可能是 张三丰 ,长度不限.(关键是后边那个空格.) 我正则表达式不是很好,刚才在http://rubular.com/搞了好长时间都无果。
(@.+?)\s+ 取出来\1就是
#1 楼 @hhuai 你好,这样最后会有个空格。因为有种情况:*@张三 * 之后就什么都没了。
零宽断言:
/@.+?\b/
#2 楼 @hlcfan 晕,不是让你取\1吗。
#4 楼 @hhuai 他的意思是,文本可能是这样的:
str = "@xxx"
#3 楼 @hooopo 谢谢!(http://rubular.com/r/QAFzUu1PEq)
#4 楼 @hhuai 你好,无法取 1...http://rubular.com/r/dKfCZnQNPc
http://rubular.com/r/SdyjNN8vad
#7 楼 @clearJiang 哇,大牛们好牛逼。我得好好学学. #3 :@.+?\b #7 :(?<=@)\S+
设定一个断言验证,这个 Ruby 1.8 也可以用。
/@\p{han}+(?=\s+)/
/@.+?(\b|$)/
加个分支不就行了?