[英]php RegEx extract values from string
我是正則表達式的新手,並且嘗試從此字符串中提取一些特定的值:
“ Iban:EU4320000713864374 \\ r \\ n快捷方式:DTEADCCC \\ r \\ nreg.no 2361 \\ r \\ n帳戶編號1234531735”
我嘗試提取的值:
EU4320000713864374
2361
這就是我現在想要做的:
preg_match('/[^Iban: ](?<iban>.*)[^\\r\\nreg.no ](?<regnr>.*)[^\\r\\n]/',$str,$matches);
我所得到的只是空數組或空數組。 任何建議將不勝感激
方括號沒有意義,您可能打算將其錨定在行的開頭:
$result = preg_match(
'/^Iban: (?<iban>.*)\R.*\R^reg.no (?<regnr>.*)/m'
, $str, $matches
);
這需要設置多行修飾符(請參閱最后的m
)。 我還更換\\r\\n
與\\R
,使得該易處理所有種類線分離器序列。
示例: https : //eval.in/47062
稍微好一點的變體則僅捕獲非空白值:
$result = preg_match(
'/^Iban: (?<iban>\S*)\R.*\R^reg.no (?<regnr>\S*)/m'
, $str, $matches
);
示例: https : //eval.in/47069
結果為(美化):
Array
(
[0] => "Iban: EU4320000713864374
Swift: DTEADCCC
reg.no 2361"
[iban] => "EU4320000713864374"
[1] => "EU4320000713864374"
[regnr] => "2361"
[2] => "2361"
)
preg_match("/Iban: (\\S+).*reg.no (\\S+)/s", $str, $matches);
關於換行符有一個特殊的功能:點(。)與換行符不匹配,除非指定了s
標志。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.