Ruby on rails Ruby正则表达式,用于与Elsif进行1或2位数匹配
我试图在ruby中使用以下regexpRuby on rails Ruby正则表达式,用于与Elsif进行1或2位数匹配,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我试图在ruby中使用以下regexp <% elsif entry.name=~(/^[0-9][0-9]/) %> 检查entry.name字符串中是否有一个或多个数字。 我似乎不能理解正确的语法 例如,我希望语句在字符串上返回true,例如 “要不惜一切代价避免10个内容创建错误”您所匹配的^[0-9][0-9]是一个字符串,在每行(^)的开头正好有两个从0到9的数字([0-9][0-9]) 这将匹配字符串作为 "10 mistakes to avoid at all c
<% elsif entry.name=~(/^[0-9][0-9]/) %>
检查entry.name字符串中是否有一个或多个数字。
我似乎不能理解正确的语法
例如,我希望语句在字符串上返回true,例如
“要不惜一切代价避免10个内容创建错误”您所匹配的
^[0-9][0-9]
是一个字符串,在每行(^
)的开头正好有两个从0到9的数字([0-9][0-9]
)
这将匹配字符串作为
"10 mistakes to avoid at all cost"
而且:
"Jenny was certain she had\n10 lipsticks"
因为它搜索每行开头的数字。这不相配
"5 mistakes to avoid at all cost"
因为它与数字完全匹配
我想你想要的是符合\A\d+
的思路\A
只在字符串的开头搜索,而不是在每一行,\d+
搜索一个或多个数字。这将符合以下条件:
"3 questions you should be able to answer when doing a job interview"
"345 lines of unreadable code"
"35 kittens"
等等。因此,您的代码应该为,减去多余的括号,再加上一些空格:
<% elsif entry.name =~ /\A\d+/ %>
下次可能会派上用场。您所匹配的
^[0-9][0-9]
是一个字符串,它在每行(^
)的开头正好有两个从0到9的数字([0-9][0-9]
)
这将匹配字符串作为
"10 mistakes to avoid at all cost"
而且:
"Jenny was certain she had\n10 lipsticks"
因为它搜索每行开头的数字。这不相配
"5 mistakes to avoid at all cost"
因为它与数字完全匹配
我想你想要的是符合\A\d+
的思路\A
只在字符串的开头搜索,而不是在每一行,\d+
搜索一个或多个数字。这将符合以下条件:
"3 questions you should be able to answer when doing a job interview"
"345 lines of unreadable code"
"35 kittens"
等等。因此,您的代码应该为,减去多余的括号,再加上一些空格:
<% elsif entry.name =~ /\A\d+/ %>
下次可能会派上用场1或2位数的匹配将是:
/^\d{1,2}/
为确保没有第三位数字,您可以使用前瞻:
/^\d{1,2}(?!\d)/
有人提到:
/^\d+/
但实际上,这将匹配3位数字(例如)。1位或2位数字匹配将是:
/^\d{1,2}/
为确保没有第三位数字,您可以使用前瞻:
/^\d{1,2}(?!\d)/
有人提到:
/^\d+/
但这实际上会匹配3位数字(例如)。使用
/^\d+/
而不是/^[0-9][0-9]/
使用/^\d+/
而不是/^[0-9][0-9]/