2

私はこの正規表現パターンを持っています

\=[a-zA-Z\.\:\[\]_\(\)\&\$\%#\-\@\!0-9;=\?/\+\xBF\~]+[?\s+|?>]

そして私はこのHTMLを持っています

1.<a href="mailto: abc@xyz.com?subject=Long Term Care Enrollment">esc@xyz.com</a>
2.<a href="mailto: abc@xyz.com?subject=LongTerm Care Enrollment">johnross@zys.com</a>
3.<a href="mailto: abc@xyz.com?subject=LongTermCareEnrollment">johnross@wen.com</a>

ここでの問題は、空白もあり、有効な属性であるため、first と second を避ける必要があることです。ただし、空白がないため、3番目のもののみが機能しています。は、上記のパターンで何も選択しないことを意味します。

ここにテストへの直接リンクがあります

http://regexr.com?31r61

助けてください!ありがとう、

4

2 に答える 2

0

それは邪悪な文字クラスです....

もう少し合理的なことを試してみませんか。これを試して...

\=".*?(?<!\\)"

それが取得しようとしている場合、href の後の括弧内のすべてに一致します。それ以上のものを探している場合は、この正規表現を簡単に変更できます。

于 2012-08-14T16:28:05.370 に答える
0

編集: 引用符で囲まれていない属性を一致させたいだけの場合、これは機能するはずです:

[<\s]+[\w]+(=[^\"][^\s>]*)

エレガントではありませんが、それがあなたの望むものかどうか教えてください。


どのパターンに一致させようとしていますか? 3つすべて?もしそうなら、どの部分ですか?件名ですか、それともメールですか?件名を一致させようとしているだけの場合は、一致するパターンとしてこれを使用してみてください。

\=\"mailto:[^?]*\?subject=([^\"]*)\"\>

これにより、グループがサブジェクト自体である一致が返されます。

于 2012-08-14T16:28:34.213 に答える