1 回答

TA貢獻1789條經驗 獲得超8個贊
如果您想匹配整個字符串并匹配 2 個類似日期的模式,您可以使用 2 個捕獲組。
請注意,它不會驗證日期本身。
\bfor\h+(\w+\h+\d{1,2},\h+\d{4})\h+to\h+((?1))\b
在零件
\bfor\h+
字邊界、匹配for
和 1+ 個水平空白字符(
捕獲組 1\w+\h+\d{1,2}
匹配 1+ 個單詞字符、1+ 個水平空白字符和 1 個或 2 個數字,\h+\d{4}
匹配逗號、1+ 水平空白字符和 4 位數字)
關閉組\h+to\h+
to
1+ 水平空白字符之間的匹配(
捕獲組 2(?1)
捕獲組 1 的子程序調用(組 1 的模式相同,因為它是相同的邏輯))
關閉組\b
字邊界
例如
$re = '/\bfor\h+(\w+\h+\d{1,2},\h+\d{4})\h+to\h+((?1))\b/';
$str = 'for April 1, 2017 to April 30, 2017';
preg_match_all($re, $str, $matches);
print_r($matches)
輸出
Array
(
[0] => Array
(
[0] => for April 1, 2017 to April 30, 2017
)
[1] => Array
(
[0] => April 1, 2017
)
[2] => Array
(
[0] => April 30, 2017
)
)
- 1 回答
- 0 關注
- 122 瀏覽
添加回答
舉報