用于检测Oracle中双元音的正则表达式

时间:2018-01-30 08:18:37

标签: sql regex oracle

任何人都可以解释这个正则表达式吗?此查询在Oracle中用于返回具有双元音的员工的姓氏(其中last_name包含两个相邻的a,e,i,o或u出现,无论大小写):

SELECT last_name
FROM employees
WHERE REGEXP_LIKE (last_name, '([aeiou])\1', 'i');

输出结果为:

LAST_NAME
---------------
De Haan
Greenberg
Khoo
Gee
Greene
Lee
Bloom
Feeney

1 个答案:

答案 0 :(得分:0)

正则表达式模式var data = readDataFromCSV(fileName: FileName, fileType:FileExtension) data = cleanRows(file: data) let csvRows = csv(data: data) print(csvRows[1][1]) 只是连续匹配两个元音:

([aeiou])\1

如果你检查匹配的姓氏,你会发现他们在某个位置都有重复的元音。顺便说一下,术语([aeiou]) match and capture a single vowel \1 then match the same vowel we just captured 被称为反向引用,它指的是模式中较早的捕获量。

浏览下面的有用演示,以便更好地了解该模式的工作原理。

Demo