2010-12-13 89 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" => "([^"]*)"是你想要的。