>데이터 베이스 >MySQL 튜토리얼 >내 MySQL REGEXP 쿼리가 \'반복 연산자 피연산자가 유효하지 않음\'으로 인해 실패하는 이유는 무엇입니까?

내 MySQL REGEXP 쿼리가 \'반복 연산자 피연산자가 유효하지 않음\'으로 인해 실패하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-26 15:54:11616검색

Why Does My MySQL REGEXP Query Fail with

정규 표현식 실패: '반복 연산자 피연산자가 유효하지 않음'

다음 MySQL 쿼리를 실행하려고 할 때:

SELECT text 
FROM `articles` 
WHERE content REGEXP '.*<img.*?src=\"http://www' 
ORDER BY date DESC

다음 오류가 발생합니다. 오류: #1139 - 정규 표현식에서 '반복 연산자 피연산자가 유효하지 않음' 오류가 발생했습니다. Notepad에서 정규식이 올바르게 작동함에도 불구하고 MySQL은 이를 거부합니다.

문제 이해: POSIX 대 PCRE

MySQL 정규식 엔진은 물음표에 대한 지원이 부족한 POSIX 1003.2를 준수합니다. (?)는 수량자( 및 )에서 탐욕스럽지 않은 수식어로 사용됩니다. 결과적으로 을(를) 채용할 수 없나요? 그리고 ?

해결 방법: 욕심 많은 수량자 활용

이 문제를 해결하려면 욕심 많은 수량자 버전을 사용하세요. 이 버전은 의도한 목적에 충분합니다. 그럼에도 불구하고 다음과 같은 요소의 원하지 않는 일치를 방지하려면

<img>

다음과 같이 부정 문자 클래스를 통합하십시오.

'<img[^>]*src="http://www'

" 문자는 이스케이프가 필요하지 않으며 .* 처음에는 암시적입니다.

위 내용은 내 MySQL REGEXP 쿼리가 \'반복 연산자 피연산자가 유효하지 않음\'으로 인해 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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