하나의 오픈 소스 코드를 참조하고 있습니다. 저기 필터 의이 종류와 SQL을 찾을 수 있습니다.__ * in Mysql 정규 표현식
select sometext from table1,table2 where table1.sometext LIKE
CONCAT('% ',table2.test_keyword,' %') AND table2.test_keyword NOT
REGEXP '__*';
이 SQL에서 __ *는 무엇입니까?
하나의 오픈 소스 코드를 참조하고 있습니다. 저기 필터 의이 종류와 SQL을 찾을 수 있습니다.__ * in Mysql 정규 표현식
select sometext from table1,table2 where table1.sometext LIKE
CONCAT('% ',table2.test_keyword,' %') AND table2.test_keyword NOT
REGEXP '__*';
이 SQL에서 __ *는 무엇입니까?
__*
은 _
에 이어과 일치합니다.
__*
^^^
||\__ (zero or more) ^
|\___ underscore |
\____ underscore, then |
_+
_+
^^
|\__ (one or more) ^
\___ underscore |
'_' 다음에 ** ** ** ** 이상이옵니다. – kennytm
@KennyTM : 그건 내가 쓴거야! ;) –
하나 이상의 밑줄 문자입니다. ,
'_'
0 이상의 밑줄 뒤에 정확히 하나 밑줄'_*'
을 : 패턴
최상으로 판독된다.는 기본적으로 밑줄 임의의 문자열을 의미하므로 (시작 마커없이, 문자열의 모든 위치에서 패턴과 일치하는 것, 명심 또는, 더 정확하게, 당신부터 ' NOT
을 사용하는 경우 문자열없이 밑줄을 사용하십시오.
또한 AND table2.test_keyword NOT REGEXP '_'
과 동일한 효과를 얻을 수 있기 때문에 불필요하게 복잡합니다.
regexes에 대한 최신 MySQL 설명서는 here을 참조하십시오 (이 대답 당시 5.6).
정규 표현식 책에 문의 했습니까? –