1

1〜200のgsub関数を使用して数値範囲を実装しようとしていますが、良い例が見つかりませんでした。私はユーザーが次のようなものを入力できるはずのbbcodeシステムを実装しています

  1. [size=80]Hello world[/size]=>有効
  2. [size=200]Hello world[/size]=>有効
  3. [size=201]Hello world[/size]=>無効

これは現在、私がgsubメソッドに入力しているものであり、1から999までのすべてを受け入れます。

\[size=(\d{1,3})\](.+?)\[\/size\]
4

1 に答える 1

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
于 2012-08-07T18:14:03.963 に答える