使用正则表达式查找连续重复的 2 个或更多字符

Using regexp to find 2 or more characters repeating sequentially

我正在尝试使用 teradata 正则表达式来查找字母连续出现两次或多次的名称

例如,Smith 和 Simons 应该每个 return 0,但是 Smmith、LLOYD、Smittth 和 Simmons 应该每个 return 1

我试过了:regexp_instr(NameField,'(.)\1[1}')

但是,如果双字母位于 NameField 的开头,这仅 return 值为 1 - 例如劳埃德,阿米尔 return 1 - 但柯林斯 returns 0

如何'trap'出现双字母?

(.)

我想这就是您要找的。 (.) 捕获任何字符, 捕获与前一个字符匹配的字符,即双字母

  1. 你打错了。无论出于何种原因,您对量词
  2. 使用了左方括号
  3. 确保您正在> 0进行比较
regexp_instr(NameField,'(.){1}') > 0

实际上 {1} 是多余的,因为 已经是一个匹配项的请求。