2016-08-08 2 views
0
<.*>|\n.*\s.*\sid="(\w*)".*\n+|.*>\n|\n.+ 

and replace $1 

この正規表現抽出サブライム正規表現は、ファイルからすべてのIDを取り出すことができる

<a href="java" class="total" id="maker" placeholder="getTheResult('local6')">master6<a> 

結果は、メーカー、私はgetTheResultキー名を抽出することができますどのように

のですか?

ので、私の結果は、私がいることを前提とし

Tried <.*>|\n.*\s.*\sgetTheResult('(\w*)').*\n+|.*>\n|\n.+ but didn't helped 
+0

奇妙な正規表現が必要な理由はありませんが、 '('または ')'にマッチさせたい場合、それらをエスケープする必要があります。 'getTheResult \( '(\ w * \)')' –

+0

正規表現でHTMLを解析しないでください。 DOMを使用 – trincot

+0

@trincotこの抽出にregexを使用すると何が問題になりますか? – destoryer

答えて

1

local6になります。

  • はあなたが上のようないくつかの値を有することができるgetTheResult('local6')
  • のようなテキストを持つファイルを持っています行
  • これらのテキストのみを保持したい場合は、1つの値1行につき

私は

getTheResult\('([^']*)'\)|(?:(?!getTheResult\(')[\s\S])* 

を示唆して$1\nと交換してください。 \nは値の間に改行を挿入します。 ^\n regex(空の文字列で置き換える)を使用して空の行を削除することができます。

パターンが詳細:

  • getTheResult\(' - '
  • '\)より、グループ1枚の撮影0+文字その他 - -
  • ([^']*)文字列リテラル((がエスケープされていることに注意)としてgetTheResult('と一致しますリテラル')
  • | - または
  • (?:(?!getTheResult\(')[\s\S])* - getTheResult('文字シーケンス(これはtempered greedy token)の開始文字ではない0以上の文字。
関連する問題