亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用php從字符串中提取值

使用php從字符串中提取值

PHP
桃花長相依 2022-06-11 10:10:12
我正在嘗試從以下行中提取開始日期,其中兩個日期都是動態的April 1, 2017。preg_match_all()for April 1, 2017 to April 30, 2017$contents = "for April 1, 2017 to April 30, 2017";if(preg_match_all('/for\s(.*)+\s(.*)+,\s(.*?)+ to\s[A-Za-z]+\s[1-9]+,\s[0-9]\s/', $contents, $matches)){    print_r($matches);}
查看完整描述

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+to1+ 水平空白字符之間的匹配

  • (捕獲組 2

  • )關閉組

  • \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

        )


)


查看完整回答
反對 回復 2022-06-11
  • 1 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號