2012-04-16 10 views
1

私はこれを頼むことを願って、私はstackoverflowの周りを検索し、類似の質問を見つけましたが、解決策は私のために働いていませんでした。正規表現:H1タグのコロンの後ろにマッチしますか?

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

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

しかし、これは単に空の配列を出力します

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

答えて

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. 
関連する問題