Announcement

Collapse
No announcement yet.

Textvergleich XML-Sorted nur Textpassagen als unwichtig definieren

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Textvergleich XML-Sorted nur Textpassagen als unwichtig definieren

    Hallo,

    ich habe Textdateien (im XML Format) zu vergleichen. Dort möchte ich nur einzelne Textpassagen als unwichtig definieren - nicht die ganze Zeile.


    Beispielzeile Datei 1:
    Code:
                    <XxxxxxXXProperty DefaultValue="" Description="" ID="Xxxxx" IsVisible="False" Name="Xxxx.XXXXXXxxxXXxxx.Name" OID="0d91ab81-d16e-4f87-a05b-d07250a25f8c" PropertyType="SINT32" Unit="" UseDefaultValue="False" UseInXxxxxXxxxx="True">
    Beispielzeile Datei 1:
    Code:
                    <XxxxxxXXProperty DefaultValue="" Description="" ID="Xxxxx" IsVisible="True" Name="Xxxx.XXXXXXxxxXXxxx.Name" OID="0d91ab81-d16e-4f87-a05b-d07250a25f8c" PropertyType="SINT32" Unit="" UseDefaultValue="True" UseInXxxxxXxxxx="False">



    Dabei ist der Teil mit OID="xxx" (die ID ist auch immer unterschiedlich und kommt mehrmals im Fale am Anfang, in der Mitte und am Ende von Zeilen vor) ist hierbei das Element welches als unwichtig angesehen werden soll.
    Definiere ich nun
    Code:
    .*OID=".*"
    als Regel (als Reg. Ausdruck), wird mir zwar das Element im Textvergleich als unwichtig angezeigt, aber zugleich werden auch alle anderen Elemente innerhalb von "" als unwichtig und somit die ganze Zeile als unwichtig angezeigt.

    Gibt es irgendwie die Möglichkeit dass nur OID="xxx" als unwichtig markiert wird und sonst alles normal verglichen wird?

    Danke und vG

  • #2
    It looks like both of your .* usage is greedy grabbing everything in front and behind. Remove the leading .* to avoid matching before OID, and remove the ".*" and try with:
    OID="[^"]*"

    This matches on OID="
    [^"] = Not Quote characters
    [^"]* = zero or more Not Quote Characters
    " = trailing quote.

    =================

    Es sieht so aus, als ob Deine beiden .*-Nutzungen "greedy" (gierig) sind, und sich alles davor und dahinter schnappen. Entferne das führende .*, um eine Übereinstimmung vor der OID zu vermeiden, und entferne das „.*“ und ersetze es durch:
    OID="[^"]*"

    Dies passt auf OID="
    [^"] = Nicht-Anführungszeichen
    [^"]* = null oder mehr Nicht-Anführungszeichen
    " = abschließendes Anführungszeichen.​
    Last edited by Gunnar; 06-Jan-2023, 04:49 AM. Reason: ENG->GER translation
    Aaron P Scooter Software

    Comment

    Working...
    X