我需要一个POSIX ERE格式的正则表达式(对于MySQL)来匹配字符串中的任何单个字符(在2个空格之间):
"abc d e f ghi"
应与"d e f"
我只有非常基本的正则表达式知识(在PHP中)并且无法在MySQL中使用它...
更新: 请查看我的其他问题,了解我正在尝试做的事情以及我正在使用的功能:
答案 0 :(得分:1)
" [a-z] "
能做你想做的吗?
答案 1 :(得分:0)
一般posix方式:/ ([a-z]) /ig
但是如果它的MySQL RLIKE,它将是' [a-z] '
(例如,它取决于列整理
答案 2 :(得分:0)
您应该使用MySQL word boundaries:
- [[:<:]],[[:>:]]
这些标记代表字边界。他们匹配开头和 词尾,分别。一个单词是一系列单词字符 不在单词字符之前或之后的单词字符。一个字 character是alnum类中的字母数字字符或 下划线(_)。
的MySQL>选择'a word a'REGEXP'[[:<:]] word [[:>:]]'; - > 1 MySQL的>
这样你的MySQL正则表达式就是[[:<:]][[:alpha:]][[:>:]]
。这将匹配MySQL中任何常设的字母字符,因为提问者似乎确实需要。然而,
如果它只是一个由空格包围的非空格字符,则应使用RegEx [[:<:]][^[:blank:]][[:>:]]
。
请注意,此单词边界语法不在POSIX ERE Standard中,但许多其他工具具有类似的语法;例如,GNU grep需要'\&lt;'和'\&gt;'在他们的RE中意味着左右边界。