0

順序付けられていないリストで始まるコンテンツ文字列があります。ホームページにこのコンテンツの概要を表示したいのですが、最初の順序付けされていないリストと一致し、プレビューに5つのリスト項目のみを表示する必要があるため、ul全体と一致すると述べました。この正規表現を使用したタグ:

/<\s*ul[^>]*>(.*?)<\s*/\s*ul>/s

オンラインの正規表現テスターでは正常に動作しますが、不明な修飾子'\'が表示され、どれがわかりませんか?また、順序付けされていないリスト全体を取得した後、たとえば最初の5つのリストアイテムのみを選択するにはどうすればよいですか。

<ul class="mylist">
    <li>Lorem Ipsum Dolor Sit Amet</li>
    <li>Lorem Ipsum Dolor Sit Amet</li>
    <li>Lorem Ipsum Dolor Sit Amet</li>
    <li>Lorem Ipsum Dolor Sit Amet</li>
    <li>Lorem Ipsum Dolor Sit Amet</li>
    <li>Lorem Ipsum Dolor Sit Amet</li>
    <li>Lorem Ipsum Dolor Sit Amet</li>
    <li>Lorem Ipsum Dolor Sit Amet</li>
    <li>Lorem Ipsum Dolor Sit Amet</li>
    <li>Lorem Ipsum Dolor Sit Amet</li>
</ul>

最初の5つのタグだけで同じものを作成したい<li>ので、phpで正規表現または他のメソッドを使用する必要がありますか?

よろしくお願いします。

4

1 に答える 1

2
/<\s*ul[^>]*>(.*?)<\s*/\s*ul>/s

/区切り文字として使用する場合は、をエスケープする必要があります。

/<\s*ul[^>]*>(.*?)<\s*\/\s*ul>/s

PHPでは、区切り文字として任意の文字を使用できますが、次のようになります。

#<\s*ul[^>]*>(.*?)<\s*/\s*ul>#s

パターンを繰り返すことができます:

#<\s*ul[^>]*>(\s*<li>.+?</li>){5}#sm

5秒に一致<li>します。ただし、個別にアクセスすることはできません。その繰り返しグループを展開するか、2番目の式を実行して<li>sを抽出できます。

于 2012-06-21T16:10:27.277 に答える