>백엔드 개발 >PHP 문제 >PHP에서 정규식을 작성하는 방법

PHP에서 정규식을 작성하는 방법

王林
王林원래의
2019-09-12 17:45:103970검색

PHP에서 정규식을 작성하는 방법

정규 표현식은 업무에서 매우 흔하게 사용되는 강력한 기술이지만 배우기가 다소 지루합니다. 오늘은 PHP로 정규식을 작성하는 방법을 알려드리겠습니다.

Delimiter

PCRE 함수를 사용할 때는 패턴을 구분 기호로 묶어야 합니다. 구분 기호는 영숫자, 백슬래시 또는 공백이 아닌 문자일 수 있습니다.

일반적으로 사용되는 구분 기호는 슬래시(/), 해시 기호(#) 및 부정 기호(~)입니다. 다음 예시는 모두 법적 구분 기호를 사용한 패턴입니다.

/foo bar/<br>#^[^0-9]$#<br>+php+<br>%[a-zA-Z0-9_-]%/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에서 정규식을 작성하는 방법/http:///<br>#http://#

문자열을 패턴에 넣어 사용해야 할 경우 preg_quote() 함수를 사용하여 이스케이프할 수 있습니다. it 의 경우 두 번째 매개변수(선택 사항)를 사용하여 이스케이프해야 하는 구분 기호를 지정할 수 있습니다.

위에 언급된 구분 기호 외에도 괄호 스타일 구분 기호를 사용할 수도 있습니다. 왼쪽 괄호와 오른쪽 괄호는 각각 시작 및 끝 구분 기호 역할을 합니다. {패턴입니다}

🎜끝 구분 기호 뒤에 패턴 수정자를 추가할 수 있습니다. 다음 예는 대소문자를 구분하지 않는 일치입니다. 🎜🎜#[a-z]#i
🎜🎜🎜🎜escape 시퀀스🎜🎜🎜🎜역슬래시는 다음과 같습니다. 여러 가지 방법으로 사용됩니다. 첫째, 영숫자가 아닌 문자가 뒤에 오면 해당 문자가 나타내는 특별한 의미를 취소합니다. 백슬래시를 이스케이프 문자로 사용하는 것은 문자 클래스 내부와 외부 모두에서 가능합니다. 🎜🎜예를 들어 "*" 문자를 일치시키려면 패턴에 "*"를 써야 합니다. 이는 문자가 탈출하지 않고도 특별한 의미를 가질 때 적용됩니다. 그러나 영숫자가 아닌 문자의 경우 원래 텍스트 일치에 필요할 때 문자 자체를 나타냄을 선언하기 위해 문자 앞에 백슬래시를 추가하는 것이 항상 안전합니다. 백슬래시를 일치시키려면 패턴에 "\"를 사용하세요. 🎜🎜예를 들어 소수점 "."을 쓰고 싶은데 그 점이 메타문자(특수한 의미를 가지고 인코딩된 문자)인 경우 소수점을 표현하고 특별한 의미를 나타내지 않게 하려면 다음과 같이 해야 합니다. 이스케이프: "." 또는 [.] 🎜🎜$lng = 125.97097735211630;<br>🎜🎜$pattern = "#^(0|[1-9][0-9 ]*)[.][0- 9]{14}$#"; 🎜🎜//소수점 14자리를 만족하는 숫자🎜🎜preg_match($pattern, $lng) 🎜🎜🎜🎜슬래시 표현의 반대 🎜🎜
🎜🎜표현식의 백슬래시는 이스케이프, 사전 정의된 문자 집합 지정, 주장을 정의하고 잘못된 인쇄된 문자를 표시합니다. 🎜🎜🎜🎜🎜이스케이프 문자🎜🎜
🎜🎜이스케이프 문자는 주로 일부 특수 문자를 일반 문자로 변환합니다. 일반적으로 사용되는 특수 문자로는 ".", "?", "" 등이 있습니다. 🎜🎜🎜🎜사전 정의된 문자 집합 지정🎜🎜🎜🎜정규식-1.jpg🎜🎜 ###인쇄할 수 없는 문자 표시🎜🎜🎜🎜🎜위 내용은 참고용입니다! 🎜🎜추천 비디오 튜토리얼: 🎜PHP 비디오 튜토리얼🎜🎜

위 내용은 PHP에서 정규식을 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.