正则表达式时工作中非常常用并且作用非常强大的的一种技术,但是学起来略显枯燥。今天,为大家讲一下,在php中正则表达式该如何写?
分隔符
当使用 PCRE 函数的时候,模式需要由分隔符闭合包裹。分隔符可以使任意非字母数字、非反斜线、非空白字符。
经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)。下面的例子都是使用合法分隔符的模式。
/foo bar/<br>#^[^0-9]$#<br>+php+<br>%[a-zA-Z0-9_-]%
如果分隔符需要在模式内进行匹配,它必须使用反斜线进行转义。如果分隔符经常在 模式内出现, 一个更好的选择就是是用其他分隔符来提高可读性。
/http:\/\//<br>#http://#
需要将一个字符串放入模式中使用时,可以用 preg_quote() 函数对其进行 转义,它的第二个参数(可选)可以用于指定需要被转义的分隔符。
除了上面提到的分隔符,也可以使用括号样式的分隔符,左括号和右括号分别作为开始和结束 分隔符。
{this is a pattern}
可以在结束分隔符后面增加模式修饰符。 下面的例子是一个大小写不敏感的匹配:
#[a-z]#i
<span style="font-size: 20px;">转义序列</span>
反斜线有多种用法。首先,如果紧接着是一个非字母数字字符,表明取消 该字符所代表的特殊涵义。这种将反斜线作为转义字符的用法在字符类 内部和外部都可用。
比如,如果你希望匹配一个 "*" 字符,就需要在模式中写为 "\*"。 这适用于一个字符在不进行转义会有特殊含义的情况下。 但是, 对于非数字字母的字符,总是在需要其进行原文匹配的时候在它前面增加一个反斜线, 来声明它代表自己,这是安全的。如果要匹配一个反斜线,那么在模式中使用 ”\\”。
例如,我要写小数点"." ,但是点是 元字符 (有特殊涵义的编码字符),如果要表示小数点,不让它代表特殊含义,就需要转义: "\." 或 [\.]
$lng = 125.97097735211630;<br>
$pattern = "#^(0|[1-9][0-9]*)[\.][0-9]{14}$#";
//满足14位小数位的数字
preg_match($pattern, $lng)
表达式中的反斜杠
表达式中的反斜杠有多重意义,如转义、指定预定义的字符集、定义断言、显示不打印的字符。
转义字符
转义字符主要是将一些特殊字符转为普通字符。而这些常用特殊字符有”.”,”?”、”\”等。
指定预定义的字符集
###显示不可打印的字符
以上内容仅供参考!
推荐视频教程:PHP视频教程
以上是php正则表达式怎么写的详细内容。更多信息请关注PHP中文网其他相关文章!