OR 일치
두 문자열 중 하나(이 문자열 또는 다른 문자열)를 검색하려면 아래와 같이 |를 사용합니다.
입력:
select prod_name from products where prod_name regexp '1000|2000' order by prod_name;
출력:
분석: 정규식 1000|2000이 문에 사용되었습니다. |는 정규 표현식의 or 연산자입니다. 그 중 하나와 일치한다고 되어 있으므로 1000과 2000이 모두 일치되어 반환됩니다.
|를 사용하는 것은 기능적으로 select 문에서 or 문을 사용하는 것과 유사합니다. 여러 or 조건을 단일 정규식으로 병합할 수 있습니다.
참고: 2개 이상 또는 조건을 지정할 수 있습니다. 예를 들어 '1000|2000|3000'은 1000, 2000 또는 3000과 일치합니다.
는 여러 문자 중 하나와 일치합니다.
은 단일 문자와 일치합니다. 하지만 특정 문자만 일치시키고 싶다면 어떻게 해야 할까요?
이는 아래와 같이 [ 및 ]로 묶인 문자 집합을 공식화하여 수행할 수 있습니다.
입력: prod_name 정규 표현식 '[123] Ton'이 prod_name별로 주문되는 제품에서 prod_name을 선택합니다. ;
출력:
분석: 여기서는 정규식 [123]Ton이 사용되었습니다. [123]은 1, 2, 3이 일치함을 의미하는 문자 집합을 정의합니다. 따라서 1ton과 2ton이 모두 일치하여 반환됩니다(3ton 없음).
보시다시피 []는 or의 또 다른 형태입니다. 실제로 정규식 [123]Ton은 [1|2|3]Ton의 약어이며 후자도 사용할 수 있습니다. 그러나 or 문이 찾고 있는 내용을 정의하려면 []가 필요합니다. 이를 더 잘 이해하려면 다음 예를 살펴봐야 합니다.
입력:
select prod_name from products where prod_name regexp '1|2|3 Ton‘ order by prod_name;
출력:
분석: 이는 그렇지 않습니다. 예상된 출력이 아닙니다. 요청된 두 개의 행이 검색되었지만 세 개의 추가 행이 검색되었습니다. 그 이유는 MySQL이 사용자가 '1', '2' 또는 '3ton'을 의미했다고 가정하기 때문입니다. 문자 |가 세트로 확장되지 않는 한 전체 문자열에 적용됩니다.
문자 세트도 부정될 수 있습니다. 즉, 지정된 문자를 제외한 모든 문자와 일치합니다. 문자 세트를 부정하려면 세트 시작 부분에 ^를 배치하십시오. 따라서 [123]은 문자 1, 2 또는 3과 일치하지만 [^123]은 해당 문자를 제외한 모든 문자와 일치합니다.
일치 범위
컬렉션을 사용하여 일치시킬 문자를 하나 이상 정의할 수 있습니다. 예를 들어 선과 다각형의 집합은 0에서 9까지의 숫자와 일치합니다.
[123456789]
이러한 유형의 집합을 단순화하려면 -를 사용하여 범위를 정의할 수 있습니다. 다음 공식은 위의 숫자 목록과 기능적으로 동일합니다.
[0-9]
범위는 전체 집합, [1-3] 및 [6-9로 제한되지 않습니다. ]도 법적 범위입니다. 또한 범위는 숫자일 필요는 없으며 [a-z]는 모든 알파벳 문자와 일치합니다.
예:
입력:
select prod_name from products where prod_name regexp '[1-5] Ton’ order by prod_name;
출력:
분석: 여기서는 정규식을 사용합니다. [ 1- 5]톤. [1-5]는 범위를 정의합니다. 이 표현식은 1에서 5까지 일치한다는 의미이므로 일치하는 행 3개가 반환됩니다. 5ton이 일치하므로 .5ton이 반환됩니다.
[관련 추천]
1. mysql에서 정규식을 사용하여 검색 및 일치하는 방법에 대한 튜토리얼(1)
3. Han Shunping의 2016년 최신 MySQL 기본 동영상 튜토리얼
4.m정규식을 사용한 검색 및 일치 튜토리얼 ysql(3)
위 내용은 mysql에서 정규식을 사용하여 검색하고 일치시키는 방법에 대한 자습서(2)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!