SQLite如何在排除某些字符的同时替换字符

SQLite how to replace characters while excluding some characters

我有一个包含单词及其音标的 SQLite 文件,如下所示:

Source (sɔɹs)
Song (sɔŋ)
Daughter (ˈdɔtəɹ)
...

如果“ɔ”后面没有跟“ŋ”或“ɹ”,我想用 'a' 个字符更改每个“ɔ”字符

到目前为止我的代码:

UPDATE words
SET phonetictranscription_ame = replace(phonetictranscription_ame, "ɔ", "a")
WHERE phonetictranscription_ame NOT IN ("ɔŋ", "ɔɹ")

此代码将 'ɔ' 字符替换为 'a' 字符,但它也将 'ɔ' 替换为包括“ɔŋ”和“ɔɹ”在内的单词。我的代码有问题吗?

首先,将所有出现的 'ɔŋ''ɔɹ' 替换为您确定不存在于列中的符号(我选择了 '|1''|2' 但我我不是语言学家,所以你可以更改它们)。

然后将所有'ɔ'替换为'a'

最后恢复 'ɔŋ's 和 'ɔɹ's:

UPDATE words
SET phonetictranscription_ame = 
  REPLACE(
    REPLACE(
      REPLACE(
        REPLACE(
          REPLACE(
            phonetictranscription_ame, 'ɔŋ', '|1'
          ), 'ɔɹ', '|2'
        ), 'ɔ', 'a'
      ), '|1', 'ɔŋ'
    ), '|2', 'ɔɹ'
  )
WHERE phonetictranscription_ame LIKE '%ɔ%';

参见demo