Ruby正则表达式在文本文件中添加一行
发布时间:2020-12-16 20:51:44 所属栏目:百科 来源:网络整理
导读:我需要匹配输入的文本文件字符串中的一行,并将该捕获的行包裹在一个字符中. 例如,想象一个文本文件: testfootestbar 我想用gsub输出: XtestXXfooXXtestXXbarX 我在匹配线路时遇到了麻烦.我尝试使用正则表达式从^开始并以$结尾,但它似乎不起作用.有任何想法
我需要匹配输入的文本文件字符串中的一行,并将该捕获的行包裹在一个字符中.
例如,想象一个文本文件: test foo test bar 我想用gsub输出: XtestX XfooX XtestX XbarX 我在匹配线路时遇到了麻烦.我尝试使用正则表达式从^开始并以$结尾,但它似乎不起作用.有任何想法吗? 我有一个文本文件,其中包含以下内容: test foo test bag 正在将文本文件作为命令行参数读入. 所以我得到了 string = IO.read(ARGV[0]) string = string.gsub(/^(test)$/,'X1X') puts string 它输出与文本文件完全相同的内容. 解决方法
如果你想匹配每一行,那么
gsub(/^.*$/,'X&;X') 诀窍.如果您只想匹配某些行,则将.*替换为您需要的任何内容. 更新: 用我的替换你的gsub: string = IO.read(ARGV[0]) string = string.gsub(/^.*$/,'X&;X') puts string 我明白了: $gsub.rb testfile XtestX XfooX XtestX XbarX 更新2: 根据@CodeGnome,您可以尝试添加chomp: IO.readlines(ARGV[0]).each do |line| puts "X#{line.chomp}X" end 这对我来说同样有效.我对正则表达式中的^和$的理解是没有必要进行咀嚼,但也许我错了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |