[ruby-list:50554] [質問] 正規表現
From:
<yamataka@...08.itscom.net>
Date:
2017-07-19 07:45:20 UTC
List:
ruby-list #50554
山口です。
yama@JPC20316739:/tmp$ uname -a
CYGWIN_NT-6.1 JPC20316739 2.8.0(0.309/5/3) 2017-04-01 20:47 x86_64
Cygwin
yama@JPC20316739:/tmp$ ruby --version
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-cygwin]
の環境で、
yama@JPC20316739:/tmp$ cat regexp.rb
input=["ls" ,\
" ls " ,\
"ls " ,\
"ls>" ,\
"ls>tako" ,\
"ls > tako" ,\
"ls>tako ika" ,\
" cd" ]
input.each do |pattern|
case pattern
when /^ *ls *>? *(?<f>[^>]*) *$/
wfname = $~[:f]
puts "match: #{wfname} pattern:\"#{pattern}\""
else
puts "not match pattern:\"#{pattern}\""
end
end
を実行すると、
yama@JPC20316739:/tmp$ ruby regexp.rb
match: pattern:"ls"
match: pattern:" ls "
match: pattern:"ls "
match: pattern:"ls>"
match: tako pattern:"ls>tako"
match: tako pattern:"ls > tako"
match: tako ika pattern:"ls>tako ika"
not match pattern:" cd"
のようになるのですが、
”ls>” や “ls> tako ika” を
マッチさせない正規表現の記述方法をご教示いただけないでしょうか?
若しくはもっとスマートな記述があれば、ご教示いただけると幸いです。