当前位置:  开发笔记 > 后端 > 正文

为什么这个正则表达式失败了?

如何解决《为什么这个正则表达式失败了?》经验,为你挑选了1个好方法。



1> Eric Duminil..:
不同的星星

你可以接受不同类型的星星:

/^[\*???]+$/ =~ '???????????????' ? true : false
#=> true

/^[\*???]+$/ =~ "*???????????**?*???*??*?????*?" ? true : false
#=> true
对象?真假

请注意,三元运算符返回truefalse可能无用,因为它将truthy转换为truefalsey false.

你可以使用:

/^[\*???]+$/ =~ '???????????????'
#=> 0

由于0是真的,它不会改变布尔逻辑的任何东西.

串#匹配?

从Ruby 2.4开始,您还可以使用:

'???????????????'.match? /^[\*???]+$/
#=> true
字符串边界

最后,如果您要检查整个字符串是全明星,你不应该使用^$,但\A\z:

p "?????????\nI'm not a star!!!\n??????".match? /^[\*???]+$/
#=> true

p "?????????\nI'm not a star!!!\n??????".match? /\A[\*???]+\z/
#=> false


在Ruby 2.4.0中你可能想使用[`match?`](https://ruby-doc.org/core-2.4.0/String.html#method-i-match-3F):''✭✭ ✭✭✭✭✭✭✭✭✭✭✭✭✭'.match?(/ ^ [\*✭★] + $ /)`
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有