2010-12-13 50 views
0

我有一个非常简单的问题,我需要通过这个字符串解析:简单的regex的问题,我只是想不通

"user_id" => "BXoVWYg-T_QS" 

就这样抢只有BXoVWYg-T_QS

我用正则表达式远抢那么多从一个更大的字符串,但我无法弄清楚如何得到它下降到USER_ID串

这只是内容是正则表达式我到目前为止:

"user_id" => ".*" 

请帮忙!

更新我有一个html字符串,我想解析一个iPhone应用程序在objective-c中。如果我能刚刚得到的正则表达式语法下来,我的问题都将迎刃而解

+0

你使用什么语言 – justintime 2010-12-13 19:03:08

回答

1
"user_id" => "([^"]*)" 
+0

嘿谢谢你的回答,但它看起来好像这个正则表达式只是返回原始字符串“user_id”=>“BXoVWYg-T_QS”...我只是想找到里面的东西第二组“” – Jim 2010-12-13 19:08:48

+2

@Jim - 问题不在于正则表达式,而在于如何使用它。查看你的正则表达式API的文档,了解如何访问结果中的“捕获的组”或“子模式”。你将*总是*匹配整个字符串;组是你如何访问它的特定位。 (在这种情况下,你想要组1)。 – 2010-12-13 19:17:54

1

您需要表明您捕捉使用括号像这样:

"user_id" => "(.*)" 

可以然后找到匹配。你使用JavaScript,Perl,C#,?

0

的问题是,.*是贪婪的 - 所以它在你的行/字符串(取决于您使用的模式)抓住一切直到最后提供"

你需要的是要么:

A)充分利用正则表达式非贪婪。 .*?将在一些平台上做到这一点。
B)从你想匹配的字符列表中排除""user_id" => "([^"]*)"是你想要的。