$s=<<<html<ul id="a"><li style="display:none">xxx</li><li style="display:block">xxx</li><li>xxx</li></ul><ul id="b"><li style="display:none">xxx</li><li style="display:block">xxx</li><li>xxx</li></ul>html;preg_match('#<ul id="b">(.+)</ul>#is',$s,$m);preg_match_all('#<li[^>]*>(.+)</li>#isU',$m[1],$arr);print_r($arr[1]);
私の能力には限界があります。他の専門家が何かトリックを持っているかどうか見てみましょう。
jQueryは使えないの?
$('#b')->find('ul')->find('li') はあなたが望むものです。
(?<=