1

この形式の文字列のHTMLファイルを解析しようとしています。

<a href="/userinfo/userinfo.aspx?ID=305157" target="main">MyUsername</a> O22</td>

「305157」、「MyUsername」、および「O22」の最初の文字(T、K、またはOのいずれか)の情報を取得したいと思います。

私はこの正規表現を使用しています。<a href="/userinfo/userinfo\.aspx\?ID=\d*" target="helgonmain">\w*</a> \w\d\d「\w」がある場所にåäöÅÄÖがない限り、問題なく動作します。

私は何をすべきか?

4

3 に答える 3

7

特に次のものを含む文字クラスを使用できます。

[\wåäöÅÄÖ]*

または、文字にUnicode文字クラスを使用できます。

\p{L}

または特にラテン語の場合:

\p{InBasicLatin}
于 2009-11-23T21:42:31.690 に答える
4

このSOの質問\p{L}で提案されているように、すべての言語のすべての文字をサポートする任意の「文字」に一致させるために使用できます。

または、 HTMLタグの先頭ではないすべての文字に一致させるため\w*に、単に。に置き換えることができます。[^<]*

しかし、他の人が言っているように、正規表現を使用してHTMLを解析することは、狂気への第一歩です...

于 2009-11-23T21:41:40.707 に答える
3

まず、HTMLを解析するために正規表現を使用しないでください。HTMLパーサーを使用します。

次に、これを本当に実行したい場合(および実行したくない場合)、\ wの代わりに、「<」以外の任意の文字に一致させることができます。

<a href="/userinfo/userinfo\.aspx\?ID=\d*" target="helgonmain">[^<]*</a> \w\d\d
于 2009-11-23T21:42:28.943 に答える