LINUX.ORG.RU

История изменений

Исправление eugrus, (текущая версия) :

Попробовал заменить в https://github.com/eugrus/gesetze-im-shell/blob/main/gesetze-im-shell

# Falls Absatz spezifiziert		
else

Absnr=$(roman_to_arabic $Absatz)

count=1

while [[ $html =~ class\=\"jurAbsatz\"\>([^\<]*)\<\/div\>(.*) ]]; do

    if [ "$count" -eq "$Absnr" ]; then
        echo "${BASH_REMATCH[1]}" | decodehtml
        break
    fi

    html="${BASH_REMATCH[2]}" # Regards to s-warus on https://www.linux.org.ru/forum/development/17289104 for this pattern matching!
    ((count++))
done

fi

на

# Falls Absatz spezifiziert		
else

Absnr=$(roman_to_arabic $Absatz)

# Regards to s-warus on https://www.linux.org.ru/forum/development/17289104 for this regex!
echo $html|grep -o "<div class=\"jurAbsatz\">($Absnr)[^<]*</div>" | sed 's/<div class="jurAbsatz">/\n<div class="jurAbsatz">/g; s/<dt>/\n<dt> /g; s/<div>/<div> /g;' | decodehtml

fi

Опять таки спотыкается в случае https://www.gesetze-im-internet.de/vwgo/__80.html на абзаце с включением другого div для пунктов:

[root@DESKTOP-2EQAM1A gesetze-im-shell]# ./gesetze-im-shell 80 I VwGO
§ 80

(1) Widerspruch und Anfechtungsklage haben aufschiebende Wirkung. Das gilt auch bei rechtsgestaltenden und feststellenden Verwaltungsakten sowie bei Verwaltungsakten mit Doppelwirkung (§ 80a).
[root@DESKTOP-2EQAM1A gesetze-im-shell]# ./gesetze-im-shell 80 II VwGO
§ 80
[root@DESKTOP-2EQAM1A gesetze-im-shell]# ./gesetze-im-shell 80 III VwGO
§ 80

(3) In den Fällen des Absatzes 2 Satz 1 Nummer 4 ist das besondere Interesse an der sofortigen Vollziehung des Verwaltungsakts schriftlich zu begründen. Einer besonderen Begründung bedarf es nicht, wenn die Behörde bei Gefahr im Verzug, insbesondere bei drohenden Nachteilen für Leben, Gesundheit oder Eigentum vorsorglich eine als solche bezeichnete Notstandsmaßnahme im öffentlichen Interesse trifft.

Это решаемо через regex или надо действительно перейти на DOM-реализацию?

Исходная версия eugrus, :

Попробовал заменить в https://github.com/eugrus/gesetze-im-shell/blob/main/gesetze-im-shell

# Falls Absatz spezifiziert		
else

Absnr=$(roman_to_arabic $Absatz)

count=1

while [[ $html =~ class\=\"jurAbsatz\"\>([^\<]*)\<\/div\>(.*) ]]; do

    if [ "$count" -eq "$Absnr" ]; then
        echo "${BASH_REMATCH[1]}" | decodehtml
        break
    fi

    html="${BASH_REMATCH[2]}" # Regards to s-warus on https://www.linux.org.ru/forum/development/17289104 for this pattern matching!
    ((count++))
done

fi

на

# Falls kein Absatz spezifiziert
if [ -z $Absatz ]; then
		
		printf '%s' "$html" | grep -o '<div class="jnhtml">.*</div>' | sed 's/<div class="jurAbsatz">/\n<div class="jurAbsatz">/g; s/<dt>/\n<dt> /g; s/<div>/<div> /g;' | decodehtml


# Falls Absatz spezifiziert		
else

Absnr=$(roman_to_arabic $Absatz)

# Regards to s-warus on https://www.linux.org.ru/forum/development/17289104 for this regex!
echo $html|grep -o "<div class=\"jurAbsatz\">($Absnr)[^<]*</div>" | sed 's/<div class="jurAbsatz">/\n<div class="jurAbsatz">/g; s/<dt>/\n<dt> /g; s/<div>/<div> /g;' | decodehtml

fi

Опять таки спотыкается в случае https://www.gesetze-im-internet.de/vwgo/__80.html на абзаце с включением другого div для пунктов:

[root@DESKTOP-2EQAM1A gesetze-im-shell]# ./gesetze-im-shell 80 I VwGO
§ 80

(1) Widerspruch und Anfechtungsklage haben aufschiebende Wirkung. Das gilt auch bei rechtsgestaltenden und feststellenden Verwaltungsakten sowie bei Verwaltungsakten mit Doppelwirkung (§ 80a).
[root@DESKTOP-2EQAM1A gesetze-im-shell]# ./gesetze-im-shell 80 II VwGO
§ 80
[root@DESKTOP-2EQAM1A gesetze-im-shell]# ./gesetze-im-shell 80 III VwGO
§ 80

(3) In den Fällen des Absatzes 2 Satz 1 Nummer 4 ist das besondere Interesse an der sofortigen Vollziehung des Verwaltungsakts schriftlich zu begründen. Einer besonderen Begründung bedarf es nicht, wenn die Behörde bei Gefahr im Verzug, insbesondere bei drohenden Nachteilen für Leben, Gesundheit oder Eigentum vorsorglich eine als solche bezeichnete Notstandsmaßnahme im öffentlichen Interesse trifft.

Это решаемо через regex или надо действительно перейти на DOM-реализацию?