加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 用于匹配大写字母的正则表达式

发布时间:2020-12-17 03:52:26 所属栏目:百科 来源:网络整理
导读:def normalized? matches = match(/[^A-Z]*/) return matches.size == 0 end 这是我在字符串上运行的函数,检查字符串是否只包含大写字母.它可以很好地排除非匹配,但是当我在类似“ABC”的字符串上调用它时它表示没有匹配,因为显然matches.size是1而不是零.它
def normalized?

    matches = match(/[^A-Z]*/)
    return matches.size == 0

  end

这是我在字符串上运行的函数,检查字符串是否只包含大写字母.它可以很好地排除非匹配,但是当我在类似“ABC”的字符串上调用它时它表示没有匹配,因为显然matches.size是1而不是零.它左右似乎有一个空元素.

谁能解释为什么?

解决方法

MatchData#size返回正则表达式中捕获组的数量加1,以便md [i]将访问有效组iff i< md.size.因此,size返回的值仅取决于正则表达式,而不是匹配的字符串,并且永远不会为0. 你想要matches.to_s.size或匹配[0] .size.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读