在sql中使用RegExp查找仅包含' x'的行

时间:2014-06-25 14:04:21

标签: sql regex oracle oracle-sqldeveloper

如何使用正则表达式仅查找名字只包含一种字符的行' x'但无论有多少角色都无关紧要。

到目前为止,我提出了:

 REGEXP_LIKE(LOWER(fst_name),'^x+$'))

我正在寻找的可能行:

' X'

' XX'

' XXX'

' XXXXXXXXX'

因此,我将此解释为含义,找到x位于字段开头和结尾的行,中间只能有x。我能正确地解释这个吗?

或者是否可以:' xxxxxxaxxxxx'

1 个答案:

答案 0 :(得分:1)

你的正则表达式是正确的:

^x+$
  • ^是" start"锚
  • x是您要搜索的字符。我认为它不是一个正则表达式元字符
  • +是"一个或多个"量词
  • $是" end"锚

所以我会解释你的正则表达式以匹配你提供的所有情况,并且匹配像&x; xxxxaxxxx'这样的东西。 http://regex101.com/r/dE8vU6

自从我使用Oracle之后已经足够长了,我不记得你的REGEX_LIKE语法是否正确,但对我来说似乎是正确的。