正则表达式,用于查找字符串的字符

时间:2018-01-11 18:00:41

标签: mysql regex

我有一些表名如下

123_atest
123_ctest
999_ktest
k12_ktest
z32_ztest_1

现在从这个列表中我想选择以0-9 and a-d开头的表格。我在下面做了

TABLE_NAME REGEXP '^[0-9a-d]'

我得到了如下结果

123_atest
123_ctest
999_ktest

不,我想在第一个下划线

之后获取以k-z开头的表名

预期结果

999_ktest
k12_ktest
z32_ztest_1

如何构建regexp

3 个答案:

答案 0 :(得分:1)

代码

See regex in use here

^[^_]*_[k-z]

要仅在开始时匹配字母数字字符,您可以使用以下任何一项:

^[^\W_]*_[k-z]
^[a-zA-Z0-9]*_[k-z]
^[[:alnum:]]*_[k-z]

解释

  • ^在行首处断言位置
  • [^_]*匹配除_以外的任何字符
  • _按字面意思匹配
  • [k-z]匹配范围k-z
  • 中的任何字符

答案 1 :(得分:1)

试试这个正则表达式! 您需要提取所有内容,但不要多次下划线'_',然后在必须匹配'test'之后,在字符类中提及k-z的范围。

^[^_]*_[k-z]test(.)*

output

答案 2 :(得分:0)

我会用这个/ ^ [0-9a-dkz] * _ [k-z] /

  • ^匹配输入的开头
  • [0-9a-dkz]匹配0到9之间的所有数字a到d之间的所有字母,仅匹配k。
  • *匹配前面的表达式0次或更多次
  • [k-z]匹配k到z之间的所有字母

此结果

  

/ ^ [0-9A-DKZ] * _ [K-Z] /

  • 999_ktest
  • k12_ktest
  • z32_ztest_1