Ruby 正则表达式求解.

hlcfan · 2012年04月10日 · 最后由 fenprace 回复于 2012年04月14日 · 2869 次阅读

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|$)/

加个分支不就行了?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号