久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      PHP字符串學習之利用正則過濾字符,返回數(shù)字字符

      在之前的文章《PHP字符串學習之怎么去除其他字符,只留下數(shù)字》中,我們介紹了利用for循環(huán)和in_array()或is_numeric()函數(shù)來提取字符串中數(shù)字字符的方法。這次我們繼續(xù)PHP字符串的學習與練習,介紹一下提取字符串中數(shù)字字符的另幾種方法。

      提取字符串中數(shù)字字符,本質上就是字符串過濾操作??吹阶址^濾,我就想起了 “正則表達式”。

      正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達對字符串的一種過濾邏輯。

      正則表達式通過構建具有特定規(guī)則的模式,與輸入的字符串信息比較,在特定的函數(shù)中使用從而實現(xiàn)字符串的匹配、查找、替換及分割等操作。

      下面我們看看如何利用正則表達式來過濾字符串,只提取字符串中的數(shù)字字符,返回由這些數(shù)字字符組成的子串。

      例如我們給出下面一個字符串

      $str ='0我是123456一段測試的字789符串0';

      想要返回由數(shù)字字符組成的子串“01234567890”!

      方法1、使用preg_replace()函數(shù)

      <?php $str ='0我是123456一段測試的字789符串0'; $result = preg_replace("/[^0-9]/", "", $str); echo $result; ?>

      分析一下上面的關鍵代碼:

      preg_replace("/[^0-9]/", "", $str)的意思為匹配除了0~9間的數(shù)字以外的字符,并將這些字符替換為空字符,即刪除這些字符即可。那么就只剩下數(shù)字字符了,因此輸出結果為:

      PHP字符串學習之利用正則過濾字符,返回數(shù)字字符

      我們來簡單了解一下preg_replace()函數(shù)

      preg_replace() 函數(shù)可以執(zhí)行正則表達式的搜索和替換,是一個強大的字符串替換處理函數(shù),該它的語法格式為“preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])”,表示搜索 subject 中匹配 pattern 的部分, 以 replacement 進行替換;可選參數(shù) limit 用于設置最大可替換次數(shù)(默認值是-1,可無限制)。

      方法2:使用preg_match_all()函數(shù)

      <?php $str ='0我是123456一段測試的字789符串0'; $result = ''; preg_match_all('/d+/',$str,$array); foreach($array as $arr){ 	foreach($arr as $value){ 		$result .= $value; 	} } echo $result; ?>

      分析一下上面的代碼:

      preg_match_all('/d+/',$str,$array)的意思為在字符串$str中多次查找只包含0~9間數(shù)字字符的子串,將每次的匹配結果放在一個數(shù)組$array中。我們使用var_dump($array)來輸出這個數(shù)組看看:

      PHP字符串學習之利用正則過濾字符,返回數(shù)字字符

      會發(fā)現(xiàn)結果數(shù)組$array是一個二維數(shù)組,包含匹配結果的元素是內(nèi)層的數(shù)組。而想要將這些元素拼接成一個字符串,就需要嵌套兩層foreach循環(huán):

      • 第一層循環(huán)中

      foreach($array as $arr){ 	 }
      • 將內(nèi)層數(shù)組作為值賦給$arr,所以在第二層循環(huán)中需要遍歷的數(shù)組變成了$arr

      foreach($arr as $value){ $result .= $value; }
      • 在每次循環(huán)中,將數(shù)組值賦給變量$value,然后使用“.=”運算符拼接到字符串$result中,因此一開始$result需要為空字符串。

      輸出結果為:

      PHP字符串學習之利用正則過濾字符,返回數(shù)字字符

      我們來簡單了解一下preg_match_all()函數(shù)。

      preg_match_all()函數(shù)可以搜索字符串中所有可以和正則表達式匹配的結果,是一個執(zhí)行全局正則表達式匹配的函數(shù),它的語法格式為

      preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
      • $pattern 正則表達式

      • $subject 進行匹配的字符串

      • $matches 所有匹配結果(數(shù)組)

      preg_match_all() 將實現(xiàn)全部結果的匹配,如果想要匹配成功一次后停止匹配,需要使用 preg_match() 函數(shù)。

      好了就說到這里了,有其他想知道的,可以點擊這個哦?!?→php視頻教程

      最后給大家推薦閱讀一個經(jīng)典課程《PHP字符串處理(玉女心經(jīng)版)》,免費的~快來學習??!

      贊(3)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號