簡體   English   中英

mysql 正則表達式模式匹配[氣象觀測站11]

[英]mysql regex pattern matching [Weather Observation Station 11]

我在練習這個問題【氣象觀測站11】的時候用

select distinct city
from station
where regexp_like(city, '^[^aeiou]|[^aeiou]$');

給了我正確的答案(458 個結果)

select distinct city
from station
where not regexp_like(city, '^[aeiou]|[aeiou]$');

給了我錯誤的答案(299 個結果)。

我覺得'^[^aeiou]'NOT '^[aeiou]'都應該給我不以 aeiou 結果開頭,但顯然不是。 這兩個答案之間的邏輯差異是什么?

它們看起來相同,但它們不同。

regexp_like(city, '^[^aeiou]|[^aeiou]$')

如果city以輔音(非元音)開頭結尾,這將返回匹配項。

然而:

not regexp_like(city, '^[aeiou]|[aeiou]$')

如果city不以元音開頭且不以元音結尾,則將返回匹配項,或者換句話說,如果city以輔音(非元音)開頭結束,則將返回匹配項。

注意兩個表達式中ORAND之間的不同,這將導致第一個表達式中的匹配比第二個表達式更多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM