2

たとえば、入力されたテキスト ファイルの文字列の行を一致させ、キャプチャした行を文字でラップする必要があります。

たとえば、次のようなテキスト ファイルを想像してください。

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

テキストファイルにあるものとまったく同じものが出力されます。

私はもう試した

string = string.gsub(/^(.*)$/, 'X\1X')

これは以下を出力します:

Xtest
Xfoo
Xtest
Xbar

...どうして?

わかりましたので、テキスト ファイルの最後の行をバックスペースして、今これを取得しています...

Xtest
Xfoo
Xbar
XtestX
4

3 に答える 3

0

問題は dos の行末 (\r\n) が原因であるため、これを取り除くために、flipdos の行末を mac の行末 (\r) に変換するコマンド (私が正しければ MAC) があります。それを検索し、そのテキスト ファイルを使用する前に dos の行末を mac の行末に変換します。

于 2013-04-13T20:34:18.563 に答える