簡體   English   中英

PHP preg_match從字符串中提取特定數字

[英]PHP preg_match to extract a certain number from a string

我有一個多行字符串,如:

$msg = "Fix #1: This is a message
Fix #2
Fix #5";

我嘗試了很多模式,但是沒有一種能按照我希望的方式工作。

我希望preg_match要做的是返回一個包含1、2和5的數組。該模式應檢查所有Fix #NUM並返回數組中的所有NUM。

您可以使用preg_match_all()並僅簡單地匹配數字即可返回所需的結果。

preg_match_all('/\d+/', $msg, $matches);
var_dump($matches[0]);

如果需要在Fix #之前添加匹配項,則可以使用以下命令:

preg_match_all('/Fix\s+#\K\d+/', $msg, $matches);

匹配“修復”,后跟空白字符“一個或多個”,后跟#。

\\K轉義序列會重置報告的匹配項的起點,並且不再包含任何以前使用的字符。

如果Fix #必須在數字的前面,則應執行以下操作:

/(?<=Fix\s+#)\d+/

否則就可以了:

/\d+/

您需要將此preg_match_all\\d+正則表達式一起使用,因為preg_match僅返回單個匹配項。 它不會進行全球比賽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM