本文目錄一覽:
- 1、php中 如何驗證一個字符串中是否存在某個字符串
- 2、php正則匹配多處內容
- 3、PHP正則表達式基本函數
- 4、用PHP正則表達式判斷
- 5、php正則匹配
- 6、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