0

ゲームのリストの Wikipedia ページから次のソース コードがあります。次のように、タイトル属性内にあるソースからゲームの名前を取得する必要があります。

<td><i><a href="/wiki/007:_Quantum_of_Solace" title="007: Quantum of Solace">007: Quantum of Solace</a></i><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span>[</span>4<span>]</span></a></sup></td>

上記のように、title 属性には文字列があります。GREP を使用して、それが発生したときにすべての行を検索し、次のものを除くすべてを削除する必要があります。

title="Game name"

すべての出現を返す次の(TextWrangler内)があります:

title="(.*)"

それを取り巻くすべてのものを削除するように設定するにはどうすればよいですか。

4

2 に答える 2

1

これらの種類のファイルを処理するには、複数の手順を使用します。

  1. まず、1 行に 1 つの HTML タグのみを含める必要があります。GREP は各行で機能するため、複雑なパターンの必要性を最小限に抑えたいと考えています。私は通常、すべてを置き換えます: > で >\n

  2. 次に、必要な項目が出現するたびにパターンを作成します。この場合、'title=". ?"'. それを括弧 () の間に入れます。次に、このパターンのすべての出現箇所を検索して置換するために、そのステートメントにいくつかの入力を追加します: . ?(タイトル=". ?")。

  3. 一致するものをすべて置き換えます。?(title=". ?").* \1
  4. 最後に、含まれている Textwrangler 関数プロセス行を賢く利用して、残りのゴミをフィルタリングします。

ノート

\1 は () 間の最初の一致を指します。複数の括弧を使用して並べ替えたり、(. ?)、(. ) などを \2、\1 と一緒に使用して列をシャッフルすることもできます。

遅延正規表現の実行方法を学びます。の用法 ?これらのパターンでは非常に強力です。基本的 ?パターンの次の部分が発生する最新の部分ではなく、パターンの次の部分の次の発生を検索するパターンがあります。

于 2014-04-22T14:59:44.590 に答える