>

문자열의 마지막 글자와 첫 글자가 모음 (a, e, i, o, u)인지 확인해야합니다. 정규식 으로이 작업을 수행하고 싶습니다.

select distinct city from station where city regexp '*.^[aeiou]$' and city regexp '^[aeiou].*';
First letter: ^[aeiou].*
last letter : *.^[aeiou]$

여기에서 첫 글자 식별은 제대로 작동하지만 마지막 글자 정규 표현식은 작동하지 않습니다

  • 답변 # 1

    와이즈 비즈

    마지막 문자 앞에literal

    Here first letter identification is working fine but last letter regular expression is not working

    가 없기 때문에 가장 가능성이 높습니다  캐릭터 ...

    ^  그리고 ^  패턴 자체가 패턴의 시작 또는 끝 부분에 나타날 때 (확장 적으로 말하기) 시작/끝에 만 패턴을 고정합니다. $  그것은 *.^[aeiou]$ 의 경우가 아닙니다  그러나이 곳에서literal ^ 를 의미합니다  만.

    ^  그리고 ^[aeiou]  여기에 충분해야합니다-이것은 모음 문자 중 하나가 처음에 즉시 발견되도록 요구합니다 ( [aeiou]$ ) resp. 끝 ( ^ ). 그 사이에 임의의 문자를 확인하려고하는 나머지는 필요하지 않습니다.

  • 답변 # 2

    이 코드는 두 경우를 함께 확인할 수 있습니다

    $
    
    
    select distinct city from station where city regexp '^[aeiou].*[aeiou]$';

관련 자료

  • 이전 database indexes - Oracle 압축/b- 트리 인덱스 사용 방법 및시기
  • 다음 php - 라 라벨 - 마이그레이션 오류, nullable 기본값?