[英]PHP string remove everything but center numbers?
我有一個字符串“ Mod。816-10 025”,我想刪除除816-10之外的所有內容。
條件:
有人能幫我嗎? 我試過像5種不同的正則表達式,但沒有成功。
$text = "Mod. 816-10 025";
echo preg_replace('~.+ (\d+-\d+) .+~', '\1', $text);
// prints: 816-10
<?php
# ...
$pattern = '/\d+-\d+/';
$matches = array();
preg_match($pattern, $input, $matches);
現在$matches[0]
將有NUM-NUM個字符串。 如果您想限制數字的大小(如果一直在2到3位之間,則模式可能類似於/\\d{2,3}-\\d{2,3}/
如果情況始終存在,則無需RegEx:
$string = explode(" ","Mod. 816-10 025");
$number = $string[1];
注意:使用php本機函數通常比強大的RegEx更快。
$foo = "Mod. 816-10 025";
$bar = explode(" ", $foo);
$result = $bar[1];
所有這些答案可能都是正確的,這僅取決於您要查找的內容。
人們發布有關preg_replace答案的信息,但是除了空格之外,他們什么都沒有照顧。 如果您喜歡preg_replace()
而不是preg_match()
,我寧願使用
preg_replace('/.*\s+(\d+-\d+)\s+.*/', '$1', $input);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.