本文目录一览:
- 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 '没有内容';
}