2014-10-07 75 views
-2

中的文本我有一系列的字符串模板,例如:查找字符串模板PHP

Confirmation Number: 1234 
Other random number: 1231 
Order Name: Something 

我試圖做的是從模板獲得這些號碼和姓名,並把它們作爲變量.. 我知道這很簡單,但我怎麼去做這件事?

乾杯!

編輯:對我來說,做到這一點,最好的辦法是進入類似:

Confirmation Number: {CONFIRMATION_NUMBER} 
Other random number: {OTHER_NUMBER} 
Order Name: {ORDER_NAME} 

再得到任何在從模板支架。

+0

爆炸結腸癌?它不完全清楚你想要什麼 – 2014-10-07 20:32:04

+0

你通過Stack/Google發現了什麼? – 2014-10-07 20:33:12

+0

不,這是行不通的......我很確定答案是一個正則表達式,我只是不知道模式會是什麼。 – 2014-10-07 20:33:49

回答

1

嗨,這樣的事情可能會伎倆。

preg_match('/^(?P<key>.+)\:\s*(?P<value>[\w]+)$/', $line, $match); 

然後使用$match['key']$match['value']

演示 http://regex101.com/r/eN1rW0/2

您可能需要在價值空間?

preg_match('/^(?P<key>.+)\:\s*(?P<value>[\w\s]+)$/', $line, $match); 

或者任何值?

preg_match('/^(?P<key>.+)\:\s*(?P<value>.+)$/', $line, $match); 

演示

http://regex101.com/r/eN1rW0/3

要捕獲:你只想移動(捕獲組)的裏面,像這樣

preg_match('/^(?P<key>.+\:)\s*(?P<value>.+)$/', $line, $match); 
+0

只要價值odes不包含!@@#%^等 – 2014-10-07 20:39:30

+0

容易改變這一點。 – ArtisticPhoenix 2014-10-07 20:40:36

+0

很好,謝謝!還有一件事,我怎樣才能改變密鑰組以便從字面上確認'確認號碼:'或'訂單名稱'等等? – 2014-10-07 20:44:44