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