2014-10-07 66 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