2014-04-30 68 views
1

我有一個很大的文本文件,我需要從中刪除某些信息,但我仍然在學習正則表達式,並且需要一些關於搜索字符串語句的幫助。PHP正則表達式preg_match_all

下面是數據我試圖提取的例子:

"id": "12345" (good) 
"id": "a123" (bad) 

我有麻煩,部分是,我想抓住的第一個例子,它只有數作爲價值ID。如果ID內有一封信,我不想搶。 ID號也是不同的長度,但格式是一致的:

"id": "number_here" 

我有以下的代碼,但它似乎並沒有對工作有什麼我想要做的:

preg_match_all("/\"id\"\:\s\"[0-9]\"/", $input_file) 
+0

這個文本文件是否有特定的結構?它看起來像可能是JSON –

回答

2
  • 你不需要逃避許多字符yiur正則表達式
  • 使用單引號的正則表達式
  • 確保後使用量詞+匹配1個或多個數字3210

您可以使用:

preg_match_all('/"id" *: *"[0-9]+"/', $input_string, $matches) ; 
4

你的正則表達式是好(如果有點重上反斜線),除了一個致命的缺陷:您只搜索一個單一的數字。

preg_match_all('/"id": "[0-9]+"/', $input_file, $matches); 
var_dump($matches); 

希望這有助於!

+0

工作就像一個魅力!非常感謝你!!!我的印象是所有特殊字符必須逃脫。 – user3569450

+0

@ user3569450呵呵,在逃避那些並不需要它的東西當然沒有*傷害*,但是這樣做更具可讀性;) –