我正在尝试使用1-200之间的gsub函数实现一个数字范围,但我找不到任何好的例子。我正在实施一个bbcode系统,用户应该可以输入类似
的内容[size=80]Hello world[/size]
=>有效[size=200]Hello world[/size]
=>有效[size=201]Hello world[/size]
=>无效这是我目前被纳入gsub方法的东西,它接受1-999之间的任何东西:
\[size=(\d{1,3})\](.+?)\[\/size\]
答案 0 :(得分:2)
试试这个:/\[size=(?:200|1\d{2}|[1-9]\d?)\](.+?)\[\/size\]/
我的测试程序:
if '[size=80]Hello world[/size]' =~ /\[size=(?:200|1\d{2}|[1-9]\d?)\](.+?)\[\/size\]/
puts 'valid'
else
puts 'invalid'
end
if '[size=200]Hello world[/size]' =~ /\[size=(?:200|1\d{2}|[1-9]\d?)\](.+?)\[\/size\]/
puts 'valid'
else
puts 'invalid'
end
if '[size=201]Hello world[/size]' =~ /\[size=(?:200|1\d{2}|[1-9]\d?)\](.+?)\[\/size\]/
puts 'valid'
else
puts 'invalid'
end
输出:
valid
valid
invalid