2016-10-27 11 views
0

ファイルツリーをクロールしてすべてのid属性値(id = "value")を収集するスクリプトを作成しようとしています。私は正規表現を使用してそのような値を収集し、リストしたいと思います。ここに私が思い付いたものです:私は把握しようとしている何一重引用符または二重引用符id属性regexの値を見つけよう

id=\'(.*?)\' - for singe quotes 

id=\"(.*?)\" - for double quotes 

、私は一つにこれら二つをマージすることができるかであるので、単一またはいずれかに包まれた値を見つけるだろう二重引用符。

答えて

0

これと同じトークンを探していることを確認してください非常に単純な解決策、example hereです。

id=\'([^']*)\'|id=\"([^"]*)\" 

代わりの(.*)何を探して、([^']*)は別にアポストロフィから何かを探します。

+0

すべての数字やすべての文字など、idの正確な形式を知っているなら、おそらく '([0-9] *)'のような正規表現で指定する方が良いでしょう。 – sdexp

1

使用後方参照:

id=(["'])(.*?)\1 
  • 今捕捉グループ2((.*?))すなわち\2希望値を有するであろう。

  • (["'])マッチ"または'のいずれかと終わりに取り込まれたグループ1、\1に入れて、我々は最初のキャプチャグループ

Demo

+0

私はこの解決策をもっと好む - よりエレガントです。あなたがペダンティックであるか、それを他の正規表現と組み合わせて安全であることを望むなら、 'id =([" '])(?:(?!\ 1))* \ 1' – Addison

関連する問題