Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Ruby正则表达式在文本文件中添加一行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要匹配输入的文本文件字符串中的一行,并将该捕获的行包裹在一个字符中.

例如,想象一个文本文件:

test
foo
test
bar

我想用gsub输出:

XtestX
XfooX
XtestX
XbarX

我在匹配线路时遇到了麻烦.我尝试使用正则表达式从^开始并以$结尾,但它似乎不起作用.有任何想法吗?

我有一个文本文件,其中包含以下内容:

test
foo
test
bag

正在将文本文件作为命令行参数读入.

所以我得到了

String = IO.read(ARGV[0])
String = String.gsub(/^(test)$/,'X\1X')

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

这对我来说同样有效.我对正则表达式中的^和$的理解是没有必要进行咀嚼,但也许我错了.

大佬总结

以上是大佬教程为你收集整理的Ruby正则表达式在文本文件中添加一行全部内容,希望文章能够帮你解决Ruby正则表达式在文本文件中添加一行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。