2014-10-20 35 views
1

我有以下字符串:NSRegular表達組(匹配)

authmod=adobe&user=ibrahimk04&challenge=5Axn6g==&response=3uy8NkHDVLpt0HwT8PraZg==&opaque=KuAj5Q== 

我使用的正則表達式下面以提取ibrahimk04

@"(user)=((\\w*)\\&)" 

但它返回用戶= ibrahimk04 &。爲什麼?它應該返回2個範圍的數組。我錯了嗎 ?

+0

使用@ 「(用戶)=(\\ W *)(\\&)」 – nu11p01n73R 2014-10-20 15:21:48

+0

@ nu11p01n73R同樣的結果 – 2014-10-20 15:24:05

回答

1

使用lookaround assertions來匹配緊接在user=之後的一個或多個單詞字符,後跟一個&符號。

(?<=user=)\\w+(?=&) 

OR

(?<=user=)\\w+ 

說明:

  • (?<=user=)正向後看斷言其將要匹配的字符必須由user=
  • \\w+匹配前面一個或多個單詞字符。
  • (?=&)聲明匹配的單詞字符必須後跟&符號。
+1

它工作:) – 2014-10-20 15:32:32

+0

的'甚至沒有必要使用字符和lookahead ... – hwnd 2014-10-20 15:33:42

0

嘗試這樣的: -

(?<=user=)\w*