2017-11-16 6 views
0

アンカータグのhref属性が空白の場合、アンカータグの値をアンカーのタイトル値で置き換えようとしています。hrefの値が正規表現で空の場合、アンカータグの値をアンカータイトルに置き換えます。

<a xlink:href="">Lorem Ipsum</a> is simply dummy text of the printing and typesetting industry<a xlink:href ="http://google.com">Google</a>. 

同様

私は正規表現の下にしようとした場合:

<a [^>]+>(.*?)<\/a> 

DEMO http://regexr.com/3h6on

その後、私はそれを交換

Lorem Ipsum is simply dummy text of the printing and typesetting industry Google. 

の下に取得しています出力Anchor Text値を持つアンカータグと、href属性値が空のアンカータグを置き換える必要があります。

私は

Lorem Ipsum is simply dummy text of the printing and typesetting industry<a xlink:href ="http://google.com">Google</a> 
+0

これは役に立ちますか? '(。*?)<\/a>' – Ramesh

+0

Nope @rameshまた、正規表現のテストリンクを追加しました。ありがとうございました –

+0

https://stackoverflow.com/a/17004406/2064981 – ClasG

答えて

2

私のアプローチはかなり厄介に見えますが、あなたはあなたがそれをしたいだけのように動作するように提供テストリンクについては、以下のような出力が必要です。

<a [^>]+?(?=href=(?:"|')(?:"|'))[^>]*?>(.*?)<\/a> 

Try it with this link.


正規表現に追加した内容は次のとおりです

[^>]+?(?=href=(?:"|')(?:"|'))[^>]*? 

です。私が追加した部分の最初と最後のワイルドカードは、<>の間の追加属性または空白と一致するだけです。

括弧内の正規表現は、positive lookaheadと呼ばれます。つまり、括弧の中にあるものはすべて一致しますが、結果には含まれません。

肯定的な先読みは、hrefに続いて空の文字列と一致します。 HREF =式後の引用符は、私はこれがあなたの質問に答えを期待

と一致しない場合。私の正規表現はまだ一致していることを

注意

+0

私はこのオリジナルの刺し方をテストしましたが、最初のアンカーリンクから最後のアンカーリンクまでの文字列を選択します。 –

+0

@PriyankGupta Strange - 私のためには、動作させたいのと同じように動作します:https:// regexr。com/3h6oq – Neele

+0

yaa @neelこのシナリオでは動作しますが、私の場合は動作しません。このリンクを参照してください。http://regexr.com/3h6pc –

1

これを試してください:<a[^<]+href=(['"]{2})\1?[^>]*?>([^<>]*)<\/a>

Try it here

関連する問題