regex - 未定义的方法“匹配?” 为真:TrueClass (NoMethodError)
问题描述
我正在尝试从(100..1000)范围内返回符合以下条件的值列表/数组:
- 3位数值
- 每个值中的所有数字都是唯一的。
$global_range = Array (100..999)
$fun = []
def listOfFunPossibilities
# FUN values should meet the criteria below:
# 1. 3 digit value
# 2. All are unique
$global_range.each do |i|
if (!(/([0-9]).*?\1/)).match?(i)
$fun.push(i)
end
end
return $fun
end
listOfFunPossibilities()
解决方案
!
您过早地应用否定:
if (!(/([0-9]).*?\1/)).match?(i)
所以你首先否定一个正则表达式(出于某种原因这是真的)然后你尝试match
调用true
价值
改用:
if !(/([0-9]).*?\1/.match?(i))
甚至
if !/([0-9]).*?\1/.match?(i)
推荐阅读
- php - 想将foreach循环中的变量传递给另一个php文件
- c# - CollectionView 中的空白
- flutter - 扑。如何让 AnimationBuilder 监听多个动画?
- go - Golang 中的 TCP 连接池
- c - 在所有生产者结束后如何正确终止多个消费者?
- google-chrome - Folium choropleth 地图在 Jupyter 笔记本上使用 Chrome 和 Firefox 留空
- c++ - C ++如何从父级调用子方法
- orientation - 如何在 MeshLab 中标准化多个相互不同的 PLY 模型的方向?
- node.js - .then() 在 node.js 中不起作用
- python - 如何让我的 pyinstaller 编译的应用程序由具有标准权限的用户运行?