您的位置:

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 '没有内容';

}