删除字符串中的希腊字母
Delete greek letters in string
我正在预处理脏文本字段。我设法删除了单个字符和数字,但仍有希腊字母(来自公式)我想完全删除。
任何类型的希腊字母都可以出现在字符串中的任何位置。
有什么想法吗?
select regexp_replace(' ω ω α ω alkanediylbis alkylimino bis alkanolpolyethoxylate the formula where straight branched chain alkylene group also known alkanediyl group that has the range carbon atoms and least carbon atoms length and can the same different and are primary alkyl groups which contain carbon atoms each and can the same different and are alkylene groups which contain the range from carbon atoms each and and are the same different numerals the range each ', '\W+', '')
[Α-Ωα-ω]
将匹配标准希腊字母表。 (请注意,这里的 Α
是与拉丁文 A
不同的字符,尽管它们看起来可能相同)。
一些常用符号不在标准字母表中,因此至少,您可能希望使用 [\u0370-\u03FF]
.
来匹配整个 Greek Unicode block
Unicode 也有
- Greek Extended block 包含带变音符号的字母
- Coptic block 有一些非常相似的角色
- 具有自己的
∆
/∏
/∑
符号的 Mathematical Operators block
- Mathematical Alphanumeric Symbols block
中希腊字母表的几个副本
...可能更多。
与其尝试列出要替换的所有内容,不如列出要保留的内容更容易。例如,要删除可打印 ASCII 范围之外的所有内容:
select regexp_replace(
'ABCΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκΛλΜμΝνΞξΟοΠπΡρΣσςΤτΥυΦφΧχΨψΩω123',
'[^\u0020-\u007E]', '', 'g'
);
regexp_replace
----------------
ABC123
我正在预处理脏文本字段。我设法删除了单个字符和数字,但仍有希腊字母(来自公式)我想完全删除。 任何类型的希腊字母都可以出现在字符串中的任何位置。 有什么想法吗?
select regexp_replace(' ω ω α ω alkanediylbis alkylimino bis alkanolpolyethoxylate the formula where straight branched chain alkylene group also known alkanediyl group that has the range carbon atoms and least carbon atoms length and can the same different and are primary alkyl groups which contain carbon atoms each and can the same different and are alkylene groups which contain the range from carbon atoms each and and are the same different numerals the range each ', '\W+', '')
[Α-Ωα-ω]
将匹配标准希腊字母表。 (请注意,这里的 Α
是与拉丁文 A
不同的字符,尽管它们看起来可能相同)。
一些常用符号不在标准字母表中,因此至少,您可能希望使用 [\u0370-\u03FF]
.
Unicode 也有
- Greek Extended block 包含带变音符号的字母
- Coptic block 有一些非常相似的角色
- 具有自己的
∆
/∏
/∑
符号的 Mathematical Operators block - Mathematical Alphanumeric Symbols block 中希腊字母表的几个副本
...可能更多。
与其尝试列出要替换的所有内容,不如列出要保留的内容更容易。例如,要删除可打印 ASCII 范围之外的所有内容:
select regexp_replace(
'ABCΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκΛλΜμΝνΞξΟοΠπΡρΣσςΤτΥυΦφΧχΨψΩω123',
'[^\u0020-\u007E]', '', 'g'
);
regexp_replace
----------------
ABC123