2011-09-16 3 views
0

정규 표현식에 문제가 있습니다. 아래에 표시된 쿼리에서 regex를 사용하고 있습니다.정규식 문제

SELECT * 
FROM ad 
WHERE platform_specific_selection 
REGEXP '[\|]{0,1}19[\|]{0,1}' 

다음과 같이 다소 잘못된 결과가 나옵니다.

  • 0|919|0|19|20|22|
  • 19|19|21|
    1. 나는 정규식을 사용하여 정확한 19 일치하고 싶어하고 나는 결과에 0|919|이 값을 원하지 않는다. 아무도 나에게 동일한 정규식을 줄 수 있습니까?

      select * from t where a REGEXP '(^|[|])19([|]|$)'; 
      

      (아이디어 중 하나 |를 허용하거나 시작의 문자열 왼쪽에, 그리고 | : 정규식, LIKE이

      SELECT * 
      FROM ad 
      WHERE platform_specific_selection 
      LIKE '%|19|%' 
      
  • +1

    [RegExr] (http://gskinner.com/RegExr/)를 사용하여 제안 할 수 있습니까? 데이터를 붙여 넣은 다음 데이터로 놀고 라이브를 선택하는 부분을 볼 수 있습니다. – Alex

    답변

    0

    이 작업을해야합니다 또는 문자열의 끝은 오른쪽에 있습니다.)

    +0

    그것은'19 | ...'또는'... | 19'와 일치하지 않을 것입니다. – Mat

    3

    충분한 이유

    +0

    감사합니다. 매트! 고마워요 – Jimit

    +0

    어떻게하면 정규식을 배울 수 있습니까? – Jimit

    +0

    http://www.regular-expressions.info/는 처음부터 시작해야 할 곳입니다. – Mat