正则表达式:字符串末尾的“_#”是什么意思?

3

我正在使用Oracle 10g中的REGEXP_LIKE函数来查找具有后缀 _#(如 _1,_2等)的列中的值。我可以使用下面的查询在值的任何部分中找到 _#,但我能否仅返回以 _# 结尾的值?

SELECT * FROM Table WHERE  REGEXP_LIKE (COLUMN,'_[[:digit:]]')

如果你发现自己在这类问题上卡住了,可以尝试在谷歌上搜索正则表达式速查表。你需要确保找到与你使用的语言相匹配的表格,但是一旦找到了,扫描一个页面寻找"$ End of line"就非常容易了。 - Cascabel
2个回答

14

Sure. Use...

SELECT * FROM Table WHERE  REGEXP_LIKE (COLUMN,'_[[:digit:]]$')

$字符匹配字符串的结尾。


谢谢!我本以为我要花一些时间来研究我的《精通正则表达式》书。它仍在待办事项清单上,但是可以留到另一天再看。 - berlebutch
你真的真的真的应该读这本书。理解正则表达式对程序员的生产力有重大贡献。 - APC

4
不需要使用正则表达式。
select * from table where substr(column,-2) between '_0' and '_9';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接