Ich habe eine Zeichenfolge wie folgt aus:Wie finde ich eine doppelte Zeichenkette mit Pattern Matching?
[13:41:25] [100:Devnull]: 01:41:20, 13:41:21> |Hunit:Player-3693-07420299:DevnullYour [Chimaera Shot] hit |Hunit:Creature-0-3693-1116-3-87318-0000881AC4:Dungeoneer's Training DummyDungeoneer's Training Dummy 33265 Nature.
Falls Sie sich fragen, es ist von World of Warcraft.
ich mit so etwas wie das enden würde:
[13:41:25] [100:Devnull]: 01:41:20, 13:41:21> Your [Chimaera Shot] hit Dungeoneer's Training Dummy 33265 Nature.
Wenn Sie bemerken, ist „Dungeoneer Trainings Dummy“ zweimal gedruckt. Ich habe es geschafft, von der ersten loszuwerden "| hunit" wie folgt mit etwas Portion:
str = "[13:41:25] [100:Devnull]: 01:41:20, 13:41:21> |Hunit:Player-3693-07420299:DevnullYour [Chimaera Shot] hit |Hunit:Creature-0-3693-1116-3-87318-0000881AC4:Dungeoneer's Training DummyDungeoneer's Training Dummy 33265 Nature."
str = string.gsub(str, "|Hunit:.*:.*Your", "Your")
Welche dies zurück:
print(str) # => [13:41:25] [100:Devnull]: 01:41:20, 13:41:21> Your [Chimaera Shot] hit |Hunit:Creature-0-3693-1116-3-87318-0000881AC4:Dungeoneer's Training DummyDungeoneer's Training Dummy 33265 Nature.
ich dann ein zweites gsub hinzufügen:
str = string.gsub(str, "|Hunit:.*:", "")
print(str) # => [13:41:25] [100:Devnull]: 01:41:20, 13:41:21> Your [Chimaera Shot] hit Dungeoneer's Training DummyDungeoneer's Training Dummy 33265 Nature.
Aber die doppelte "Dungeoneer's Training Dummy" Saite wird offensichtlich wiederholt.
Wie kann ich die doppelte Zeichenfolge loswerden? Diese Zeichenfolge kann alles andere sein, in diesem Fall ist "Dungeoneers Training Dummy", aber es kann der Name eines anderen Ziels sein.
Das tut es, obwohl ich immer noch die abschließende "33265 Nature.". Würde es Ihnen etwas ausmachen zu erklären, was in der von Ihnen verwendeten Funktion passiert? Wenn es nicht viel Ärger ist. – user3209270
Nachdem 33265 Nature entfernt wurde, überprüft die Funktion, ob der aktuelle String in zwei Hälften aufgeteilt werden kann und ob diese beiden Hälften gleich sind. Ich werde weitere Kommentare hinzufügen ... –
Aktualisieren Sie die Lösung, um '33265 Nature' darin zu behalten. –