【问题标题】:mysql - Regular Express to find column that starts with lettersmysql - 正则表达式查找以字母开头的列
【发布时间】:2013-01-23 08:27:31
【问题描述】:

我正在尝试在 mysql 中提出一个正则表达式,它会搜索以字母开头的列。到目前为止,我想出了这个不起作用

SELECT * FROM table WHERE column LIKE REGEXP '[A-Za-z]%'

有什么帮助吗?

【问题讨论】:

    标签: mysql regex


    【解决方案1】:
    SELECT * FROM table WHERE column REGEXP '^[A-Za-z]'
    

    【讨论】:

    • '^[^A-Za-z]' 否定字符类。编辑:哇,你要求不要以字母开头,现在不要删除。
    【解决方案2】:
    SELECT * FROM your_table_name WHERE your_column_name REGEXP '^[a-z]'
    

    【讨论】:

    • 正确答案,因为 REGEXP 不区分大小写,除非数据是二进制的。
    【解决方案3】:

    你很接近:

    '^[A-Za-z]'
    

    您正在处理正则表达式,因此暂时忘记了正常的 SQL 模式匹配语法。

    查看this page 了解更多关于正则表达式的信息。

    由于 REGEXP 不区分大小写,除非与二进制字符串一起使用,因此您可以指定 [a-z][A-Z]

    如果您不希望它以某个字符开头,则可以使用否定字符类 [^characters],但请注意,其他未指定的所有内容都将匹配。

    '^[^A-Za-z]'
    

    【讨论】:

      【解决方案4】:

      试试这个。

      SELECT * FROM table WHERE column LIKE REGEXP '([A-Z]|[a-z])+%'
      

      【讨论】:

      • 这将匹配字符串中的任何位置。
      【解决方案5】:
      SELECT * FROM user WHERE password REGEXP '^[a-zA-w]'
      

      【讨论】:

      • 为什么A-w?这将导致Za 之间的一些非字母匹配。
      猜你喜欢
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      相关资源
      最近更新 更多