0
这里新来的红宝石,Ruby检查正则表达式
我想知道如何检查Ruby中的正则表达式。阅读大量的文件,但它很混乱。
我需要在此格式线检查文件:
id: 123456 synset: word1,word2,etc
的整数位数不要紧,有多少话是同义词集合不要紧都不是。我想假设使用Regexp?有人能给我一个例子吗?
这里新来的红宝石,Ruby检查正则表达式
我想知道如何检查Ruby中的正则表达式。阅读大量的文件,但它很混乱。
我需要在此格式线检查文件:
id: 123456 synset: word1,word2,etc
的整数位数不要紧,有多少话是同义词集合不要紧都不是。我想假设使用Regexp?有人能给我一个例子吗?
正则表达式将方便在这里:
str = 'id: 123456 synset: word1,word2,etc'
m = str.match(/\Aid: (\d+) synset: (.+)\z/)
id, synset = m.captures
id
=> "123456"
synset
=> "word1,word2,etc"
或者你可以将字符串分割成一个数组:
arr = str.split
_, id, _, synset = arr
id
=> "123456"
synset
=> "word1,word2,etc"
./file1.rb:
id: 123456 synset: word1,word2
id: 123456 synset: word1,word2
a;sdlkfjasdlkfj
id: 123456 synset: word1,word2
./file2.rb
file = File.new('./file1.rb','r+')
p file.grep(/^id: \d+ synset: (\w+,?)+$/)
#[
# id: 123456 synset: word1,word2,
# id: 123456 synset: word1,word2,
# id: 123456 synset: word1,word2"
#]
使用Enumerable#grep返回一个只包含与正则表达式匹配的行的数组。
如果这些都不重要,那么*做什么? – Jan
你是什么意思_check_文件?检查它们是否属实,或者你需要提取这些行? –
只有'id:'+数字和空格+'synset:'+单词用逗号分隔 – thestateofmay