1

sed 式を使用して必要なデータを取得する際に問題が発生しています。私はそれを少し調査し、小さなチュートリアルを試しましたが、いくつかの助けを借りることができました. どれも使えない気がする

同様のスレッドに最も近いのは、「正規表現の後に単語を印刷する方法ですが、類似の単語ではありませんか?」.

これを解析して情報を取得しようとしています:

<table cellpadding=""0"" cellspacing=""0"" border=""0""><tr><td>Product<br>Total: 9.99 CAD<br></td></tr><tr><td><br /> <table cellpadding=""0"" cellspacing=""0"" border=""0"" style=""font-size:10px;""><tr><td colspan=""2""><b style=""color:#777; font size:12px;"">==Payer Info==</b></td></tr><tr><td width=""70""><b style=""color:#777"">First Name</b> </td><td>Greg</td></tr><tr><td><b style=""color:#777"">Last Name</b> </td><td>Allan</td></tr><tr><td><b style=""color:#777"">E-Mail</b></td><td>gregoryallan@me.com</td></tr></table></td></tr></table>

理想的には、これから人の名前を取得したいと思います。>名の前まで続く式を作成し、その変数を取得する必要があります。

$ sed -n 's/^.*[Payer Info] -- grab name and stop when you hit </td>

ターミナルでやっているとほのめかしたので、誤解を招きました。それが私の最初の目標でした。しかし、今度はこの RegEx を Google Apps Script で使用する必要があります。似ていると思いましたが、そうではありません。誤解を与えてしまった皆様、大変申し訳ありませんでした。

4

2 に答える 2

0

これはうまくいくかもしれません(フォーマットが常にあなたの例とまったく同じであると仮定します):

sed -e 's/^.*First Name<\/b> <\/td><td>\([^<]*\).*$/\1/g' sed_sample
于 2012-11-05T20:14:13.750 に答える
0

ここで私はあなたの名前を抽出しました(あなたの場合はグレッグ):

sed 's_^.*First Name[^d]*d>[^>]*>\([A-Za-z]*\).*_\1_'

これを簡単に変更して、他のフィールドを取り出すことができます。

ミドルネーム:

sed 's_^.*Last Name[^d]*d>[^>]*>\([A-Za-z]*\).*_\1_'

Eメール:

sed 's_^.*E-Mail[^d]*d>[^>]*>\([A-Za-z@.]*\).*_\1_'

スクリプト内では、次のようなものを使用できます。

名前 = $(echo $STRING | sed xxx )

xxx を sed のコマンドに置き換えます。

スクリプト内のプロセスの出力をキャプチャする方法は他にもたくさんあります。

于 2012-11-05T20:06:41.990 に答える