【问题标题】:How to select data with REGEXP without containing Extended ASCII如何使用 REGEXP 选择不包含扩展 ASCII 的数据
【发布时间】:2016-11-23 06:08:18
【问题描述】:

我只想显示数据:

  1. 包含 a-z

  2. 包含 A-Z
  3. 包含数字 0-9
  4. 在以下链接中包含可打印的 ASCII 字符http://www.theasciicode.com.ar/extended-ascii-code/latin-diphthong-ae-uppercase-ascii-code-146.html

我坚持使用这样的代码,请帮助上面的-4点:

select * from Delin where the address REGEXP '^ [A-Za-z0-9]'

以下示例原始数据:

我想像这样输出(这些图像显示 a-Z 并且只有可打印的符号):

【问题讨论】:

  • This SO question 似乎是重复的,除了那里指定的方法都不适用于您的情况,因为您需要扩展的 ASCII。一个主要限制是 MySQL 似乎没有内置的扩展 ASCII 字符集。

标签: mysql sql regex


【解决方案1】:

您的项目 1–3(azAZ09)都是项目 4(可打印的 ASCII 字符)的子集,因此您只需要关注后者。以下查询满足该标准:

SELECT * FROM Delin
 WHERE alamat REGEXP '^[ -~]+$';

字符类[ -~],表示从空格到波浪号的ASCII字符,恰好是所有可打印的ASCII字符,没有其他字符。

您可以在此处的 SQL Fiddle 中看到它:http://sqlfiddle.com/#!9/6c7b8/1

术语说明:没有“扩展 ASCII”之类的东西。 ASCII character set 对应于数字 0–127(含)。任何与大于 127 的数字对应的字符都不是 ASCII。术语“扩展 ASCII”经常被错误地应用于 various non-ASCII encodings,在任何官方意义上都不是 ASCII 的“扩展”。

【讨论】:

    猜你喜欢
    • 2013-08-30
    • 2013-06-18
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多