0

これを得ました:

<TAG>something one</TAG><TAG>something two</TAG><TAG>something three</TAG>

私は一致したいだけです:something two 私は試します:(?<=<TAG>)(.*two.*)(?=<\/TAG>) しかし、得ました:

something one</TAG><TAG>something two</TAG><TAG>something three

多分私は別の例を挙げます

RECORDsomething beetwenRECORD RECORDanything beetwenRECORD etc.

RECORDより単語を取得したい

4

4 に答える 4

0

これを試して:

(?<=</TAG><TAG>)[^<]*(?=</TAG><TAG>)
于 2013-01-06T13:03:14.250 に答える
0

すでに述べたように、正規表現を使用して HTML を解析することはお勧めできません。これを行うための HTML パーサーはたくさんあります。しかし、どうしても正規表現が必要な場合は、Python での方法を次に示します。

In [1]: import re

In [2]: s = '<TAG>something one</TAG><TAG>something two</TAG><TAG>something three</TAG>'

In [3]: re.findall(r'(?<=<TAG>).*?(?=</TAG>)', s)[1]
Out[3]: 'something two'

ただし、このソリューションは、常に 2 番目のタグ ペアのコンテンツを抽出したい場合にのみ機能します。しかし、私が言ったように、これをしないでください。

于 2013-01-06T13:16:02.667 に答える
0

使用できます

<TAG>.+?<TAG>(.*?)</TAG>

あなたsomething twoは の最初の試合にいます$1

于 2013-01-06T12:57:35.430 に答える
0

TAG が最初でも最後でもないことがわかっている場合は、次のことができます。

(?<=.+<TAG>)(.*two.*)(?=<\/TAG>.+)

もちろん、タグもキャプチャし、キャプチャ グループを使用する方がはるかに優れています。

.*<TAG>(.*two.*?)<\/TAG>
于 2013-01-07T10:14:48.790 に答える