不以元音开头或结尾的单词的正则表达式?
Regular expression for words not starting or ending with vowels?
我使用了这个正则表达式:^[aeiou](\w|\s)*[aeiou]$
对于以元音开头和结尾的单词,效果很好。
但是当我使用这个正则表达式时:
^[^aeiou](\w|\s)*[^aeiou]$
对于不以元音开头和结尾的单词,它不起作用。你能告诉我我的第二个正则表达式有什么问题吗?
字如:
南不列颠
里弗斯交界处
飞燕草
绍斯波特
康普顿
林登
塞奇威克
休斯顿
塞勒
黑豹燃烧
select distinct(city) from station
WHERE regexp_like(city, '^[^aeiou](\w|\s)*$', 'i')
OR regexp_like(city, '^(\w|\s)*[^aeiou]$', 'i');
问题是问 "ends with OR starts with" 你可以在正则表达式中做到这一点,但我在 WHERE
子句
中作为 OR
做到了
如果我理解所需的逻辑并且您碰巧想要一个正则表达式,我会使用类似 !/(^[aeiou](\w|\s)*)|((\w|\s)*[aeiou]$)/i
的东西。当然,这不是最易读的格式,但应该只抓取那些以非元音字母开头和结尾的单词。
游戏迟到了,但如果是 MySQL 这对我有用:
SELECT DISTINCT CITY FROM STATION
WHERE NOT REGEXP_LIKE(CITY,'[aeiou]$','i')
OR NOT REGEXP_LIKE(CITY, '^[aeiou]','i');
简单易读的解决方案
SELECT DISTINCT city
FROM station
WHERE city NOT REGEXP '^[aeiou]' AND city NOT REGEXP '[aeiou]$'
下面是最简单的MS SQL服务器命令,你可以想出-
SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE '[^aeiouAEIOU]%' OR CITY LIKE '%[^aeiouAEIOU]';
再简单不过了。
在MYSQL中我使用了:
Select distinct City from STATION where City RLike "^[^aeiou].*|[^aeiou]$"
我使用了这个正则表达式:^[aeiou](\w|\s)*[aeiou]$
对于以元音开头和结尾的单词,效果很好。
但是当我使用这个正则表达式时:
^[^aeiou](\w|\s)*[^aeiou]$
对于不以元音开头和结尾的单词,它不起作用。你能告诉我我的第二个正则表达式有什么问题吗?
字如:
南不列颠
里弗斯交界处
飞燕草
绍斯波特
康普顿
林登
塞奇威克
休斯顿
塞勒
黑豹燃烧
select distinct(city) from station
WHERE regexp_like(city, '^[^aeiou](\w|\s)*$', 'i')
OR regexp_like(city, '^(\w|\s)*[^aeiou]$', 'i');
问题是问 "ends with OR starts with" 你可以在正则表达式中做到这一点,但我在 WHERE
子句
OR
做到了
如果我理解所需的逻辑并且您碰巧想要一个正则表达式,我会使用类似 !/(^[aeiou](\w|\s)*)|((\w|\s)*[aeiou]$)/i
的东西。当然,这不是最易读的格式,但应该只抓取那些以非元音字母开头和结尾的单词。
游戏迟到了,但如果是 MySQL 这对我有用:
SELECT DISTINCT CITY FROM STATION
WHERE NOT REGEXP_LIKE(CITY,'[aeiou]$','i')
OR NOT REGEXP_LIKE(CITY, '^[aeiou]','i');
简单易读的解决方案
SELECT DISTINCT city
FROM station
WHERE city NOT REGEXP '^[aeiou]' AND city NOT REGEXP '[aeiou]$'
下面是最简单的MS SQL服务器命令,你可以想出-
SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE '[^aeiouAEIOU]%' OR CITY LIKE '%[^aeiouAEIOU]';
再简单不过了。
在MYSQL中我使用了:
Select distinct City from STATION where City RLike "^[^aeiou].*|[^aeiou]$"