1

これで問題ないことを願っています。stackoverflow を検索したところ、同様の質問が見つかりましたが、解決策はありませんでした。

私はこのような HTML を持っています: <h1>Beatles: A Hard Days Night</h1>正規表現がコロンの後のすべてに一致するようにしたいと思います。したがってA Hard Days Night、この場合。

これは私が試したものです:

$pattern = "/<h1>\:(.*)<\/h1>/";

しかし、これは空の配列を出力するだけです。

4

1 に答える 1

4

次の正規表現はそれに一致する必要があります。

<h1>[^:]+:\s+([^<]+)

PowerShell テスト:

PS> '<h1>Beatles: A Hard Days Night</h1>' -match '<h1>[^:]+:\s+([^<]+)'; $Matches
True

Name                           Value
----                           -----
1                              A Hard Days Night
0                              <h1>Beatles: A Hard Days Night

少し説明:

<h1>    # match literal <h1>
[^:]+   # match everything *before* the colon (which in this case
        # shouldn't include a colon itself; if it does, then use .*)
:       # Literal colon
\s+     # Arbitrary amount of whitespace
([^<]+) # Put everything up to the next < into a capturing group.
于 2012-04-16T21:16:27.600 に答える