php正則匹配是否存在,正則匹配是否包含

本文目錄一覽:

php中 如何驗證一個字符串中是否存在某個字符串

php自帶的函數可以使用:

第一:strpos() 函數查找字符串在另一字符串中第一次出現的位置。(區分大小寫),找到了就證明存在

第二:stripos() 函數查找字符串在另一字符串中第一次出現的位置(不區分大小寫),同樣匹配到了就證明存在

第三:strstr() 函數搜索字符串在另一字符串中的第一次出現。(區分大小寫)等等,PHP內置函數挺多的,你可以查找看下記住。

php正則匹配多處內容

第一個問題:

preg_match(“/div.*?((?:(?!div).)+?)\/div/”, $content, $match);

echo $match[1];

第二個問題,LZ是不是想匹配出b、c中先出現的一處中的內容?這樣的話:

$content = ‘

div class=”b”內容/div

div class=”c”內容/div’;

preg_match(“/div\sclass=\”[bc]\”(.+?)\/div/”, $content, $match);

echo $match[1];

PHP正則表達式基本函數

在PHP正則表達式中需要轉義的字符如下

$^*()+={}[]|/: ? “

注意 perl風格中表達式要求以/開始和結尾 如 /food/ 表匹配字符 food

perl修飾符如下

i 完成不區分大小寫的搜索

g 查找所有出現(all occurrences 完成全局搜索)

m 將一個字符串視為多行(m就表示多(multiple)) 默認情況下 ^和$字符匹配字符串中的最開始和最末尾 使用m修飾符將使^和$匹配字符串中每行的開始

s 將一個字符串視為一行 忽略其中的所有換行符;它與m修飾符正好相反

x 忽略php正則表達式中的空白和注釋

U 第一次匹配後停止 默認情況下 將找到最後一個匹配字符結果 利用這個修飾符可以在第一次匹配後停止 進而形式循環匹配

元字符說明

利用Perl正則表達式還可以做另一件有用的事情 這就是使用各種元字符來搜索匹配 元字符(metacharacter)就是一個前面有反斜線的字母字符 表示某種特殊含義 以下是一些有用的元字符

A 只匹配字符串開頭

b 匹配單詞邊界

B 匹配單詞邊界之外的任意字符

d 匹配數字字符 它與[ ]相同

D 匹配非數字字符的php正則

s 匹配空白字符

S 匹配非空白字符的php正則

[] 包圍一個字符類 字符類包括 [ ] [a z] [a zA Z] 等類似

() 包圍一個字符分組或定義一個反引用

$ 匹配行尾

^ 匹配行首

* 匹配前面的子表達式零次或多次 要匹配 * 字符 請使用 *

+ 匹配前面的子表達式一次或多次 要匹配 + 字符 請使用 +

? 匹配前面的子表達式零次或一次 或指明一個非貪婪限定符 ?

匹配除換行之外的任何字符

引出下一個元字符

w 匹配任何只包含下劃線和字母數字字符的字符串 它與 [a zA Z _]相同

W 匹配沒有下劃線和字母數字字符的字符串的php正則

Perl風格函數有

array preg_grep(string pattern array input [ flags])

搜索數組中所有元素 返回由與某個模式匹配的所有元素組成的數組

PHP 增加了一個可選參數 flag 它接受一個值 PREG_GREP_INVERT 傳遞此標誌將得到與該模式不匹配的數據元素

int preg_match(string pattern string string [ array matches [ int flags [ int offset]]])

在字符串中搜索模式 如果存在返回TRUE 否則返回FALSE

可選輸入參數matches可以包含搜索模式中包含的子模式的各個部分 默認返回 匹配的字符串 當有()子包圍時 會在數組後面輸出

int preg_match_all(string pattern string string array pattern_array [ int order])

和函數 preg_match一樣 不過 preg_match 只搜索一次 而 preg_match_all 會執行循環搜索 返回所有匹配的結果

mixed preg_replace(mixed pattern mixed replacement mixed str [ int limit])

用replacement替換pattern的所有出現 並返回修改後的結果

可選 limit 指定應當發生多少次匹配 不設置limit或設置為 將替換所有出現的情況

lishixinzhi/Article/program/PHP/201311/21050

用PHP正則表達式判斷

代碼如下(經測通過):

?php$str=”((1+1)*3.3)/10-12+(1+1)”;if(preg_match(“/[\+\-\*\/\.]{2}|[^\+\-\*\/\(\)\d\.]+/i”, $str, $matches)){ echo ‘非法算式’;} else { if(substr_count($str,”(“)==substr_count($str,”)”)){ echo ‘合法算式’; } else { echo ‘括號不匹配’; }}?

判斷str里是否存在連續運算符、小數點或運算符、括號、數字以外的字符

若存在則非法

若不存在則判斷str里( 和 )數量是否一致

打字不易,如滿意,望採納。

php正則匹配

如果是json,直接用jsondcode輸出數組

正則:preg_match_all(‘/”id”:”(.*)”,”name”:”(.*)” /isU’,$str,$arr);

print_r($arr);

如果有錯誤,估計會是:問題,在前面加個\

php 如果沒有匹配正則,如果成功匹配成功顯示“成功!”,否者顯示“沒有內容”!

if(preg_match(“/正則/”,$str)){

    echo ‘成功’;

}else{

    echo ‘沒有內容’;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/158950.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 18:56
下一篇 2024-11-19 18:56

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台服務器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • 深入了解sed正則匹配

    一、sed 命令是什麼 sed(stream editor)是一種非交互式流式文本編輯器。它用於對文本進行編輯、轉換。sed 主要用於自動編輯。即通過腳本或命令直接對文本進行編輯。…

    編程 2025-04-24
  • 判斷list里是否存在某個值的多種方法

    一、for循環遍歷 function isValueExist(list, value) { for (var i = 0; i < list.length; i++) { …

    編程 2025-04-24

發表回復

登錄後才能評論