Du meinst preg_match?
Das verträgt auch die Suche nach /<[hH][1-6]>(.*)<\/[hH][1-6]>/
als Pattern. Zudem willst Du wohl preg_machtch_all() verwenden:
<?php
$pattern = '/<[hH][1-6]>(.*)<\/[hH][1-6]>/';
$text = '
<h1>1) Erste, Erster Ordnung</h1>
<h2>1.1) Erstens, Erste Zweiter Ordnung</h2>
<h2>1.2) Erstens, Zweite Zweiter Ordnung</h2>
<h1>2) Zweitens, Erster Ordnung</h1>
<h2>2.1) Zweitens, Erste Zweiter Ordnung</h2>
<h2>2.2) Zweitens, Zweite Zweiter Ordnung</h2>
';
$foo = preg_match_all( $pattern, $text, $ar, PREG_OFFSET_CAPTURE);
var_dump($ar);
print "\n";
Ergebnis:
array(2) {
[0] =>
array(6) {
[0] =>
array(2) {
[0] =>
string(33) "<h1>1) Erste, Erster Ordnung</h1>"
[1] =>
int(1)
}
[1] =>
array(2) {
[0] =>
string(44) "<h2>1.1) Erstens, Erste Zweiter Ordnung</h2>"
[1] =>
int(35)
}
[2] =>
array(2) {
[0] =>
string(45) "<h2>1.2) Erstens, Zweite Zweiter Ordnung</h2>"
[1] =>
int(80)
}
[3] =>
array(2) {
[0] =>
string(36) "<h1>2) Zweitens, Erster Ordnung</h1>"
[1] =>
int(127)
}
[4] =>
array(2) {
[0] =>
string(45) "<h2>2.1) Zweitens, Erste Zweiter Ordnung</h2>"
[1] =>
int(164)
}
[5] =>
array(2) {
[0] =>
string(46) "<h2>2.2) Zweitens, Zweite Zweiter Ordnung</h2>"
[1] =>
int(210)
}
}
[1] =>
array(6) {
[0] =>
array(2) {
[0] =>
string(24) "1) Erste, Erster Ordnung"
[1] =>
int(5)
}
[1] =>
array(2) {
[0] =>
string(35) "1.1) Erstens, Erste Zweiter Ordnung"
[1] =>
int(39)
}
[2] =>
array(2) {
[0] =>
string(36) "1.2) Erstens, Zweite Zweiter Ordnung"
[1] =>
int(84)
}
[3] =>
array(2) {
[0] =>
string(27) "2) Zweitens, Erster Ordnung"
[1] =>
int(131)
}
[4] =>
array(2) {
[0] =>
string(36) "2.1) Zweitens, Erste Zweiter Ordnung"
[1] =>
int(168)
}
[5] =>
array(2) {
[0] =>
string(37) "2.2) Zweitens, Zweite Zweiter Ordnung"
[1] =>
int(214)
}
}
}