正则表达式仅允许数字,并且必须以结尾处的单个“#”符号结尾

时间:2012-05-10 08:13:39

标签: ruby-on-rails regex

您好我想验证一个字符串,其中只允许数字,而

只有一个#符号

结束。我使用它,但它允许在结束时使用双#符号。

    /^[0-9]+#/

我如何将其优化为仅允许在1345#

之类的字符串末尾添加单个#符号

2 个答案:

答案 0 :(得分:5)

请勿使用^$。请改用\A\z!这是一个很大的问题!

/\A[0-9]+#\z/

^$用于指定结束,而不是刺痛!

# don't do this!!!
/^[0-9]+\#$/ =~ "12#\nfoo" # MATCHES!!!

我希望它能帮助别人!

答案 1 :(得分:2)

使用$匹配字符串

的结尾
/^[0-9]+#$/