Für allgemeine Fragen zur Programmierung mit PureBasic.
R3booz
Beiträge: 90 Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:
Beitrag
von R3booz » 01.10.2013 18:56
Hallo,
habt ihr auf die schnelle eine Idee wie ich es am einfachsten umsetzten kann wenn ich das hier habe:
und nur das
entfernen will, sprich alles was in eckigen klammern ist.
wie mach ich das am besten?
mfg R3booz
RSBasic
Admin
Beiträge: 8047 Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:
Beitrag
von RSBasic » 01.10.2013 18:58
RegEx wäre genau das, was du suchst.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
R3booz
Beiträge: 90 Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:
Beitrag
von R3booz » 01.10.2013 19:10
Aber wie stell ich das mit Klammern an?
ts-soft
Beiträge: 22292 Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43 CPU: AMD FX-6300 Six-Core Processor GraKa: GeForce GTX 750 Ti, 2 GB Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin
Beitrag
von ts-soft » 01.10.2013 19:16
Code: Alles auswählen
Define string.s = "Hallo [weg damit] wie gehts"
Debug Left(string, FindString(string, "[") - 1) + Mid(string, FindString(string, "]") + 1)
RSBasic
Admin
Beiträge: 8047 Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:
Beitrag
von RSBasic » 01.10.2013 19:19
Code: Alles auswählen
EnableExplicit
Define string.s = "Hallo [weg damit] wie gehts"
Define Result$
If CreateRegularExpression(0, "\[.*\]")
Result$ = ReplaceRegularExpression(0, string, "")
Debug Result$
Else
Debug RegularExpressionError()
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Kiffi
Beiträge: 10725 Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Beitrag
von Kiffi » 01.10.2013 19:23
ich will auch mal!
Code: Alles auswählen
Define string.s = "Hallo [weg damit] wie gehts"
Debug StringField(string, 1, "[") + StringField(string, 2, "]")
a²+b²=mc²
ts-soft
Beiträge: 22292 Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43 CPU: AMD FX-6300 Six-Core Processor GraKa: GeForce GTX 750 Ti, 2 GB Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin
Beitrag
von ts-soft » 01.10.2013 19:26
Kiffi is the Winner
R3booz
Beiträge: 90 Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:
Beitrag
von R3booz » 01.10.2013 19:28
Vielen dank das reicht
mfg R3booz
NicTheQuick
Ein Admin
Beiträge: 8838 Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200 Ubuntu 24.04.2 LTS GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Beitrag
von NicTheQuick » 01.10.2013 19:43
Die Pointer-Variante fehlt aber noch!!
Code: Alles auswählen
Procedure.s removeBrackets(input.s)
Protected *c.Character = @input
Protected *o.Character = *c
Protected remove.i = #False
While *c\c
If (*c\c = '[')
remove = #True
EndIf
If (Not remove)
*o\c = *c\c
*o + SizeOf(Character)
EndIf
If (*c\c = ']')
remove = #False
EndIf
*c + SizeOf(Character)
Wend
*o\c = 0
ProcedureReturn input
EndProcedure
string.s = "Hallo [weg damit] wie gehts? - [Scheiße] Gut!"
Debug removeBrackets(string)
STARGÅTE
Kommando SG1
Beiträge: 7039 Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:
Beitrag
von STARGÅTE » 01.10.2013 23:16
Ein .*? im Regex stellt sicher, dass auch mehere [ ] richtig geparst werden.
Code: Alles auswählen
EnableExplicit
Define string.s = "Hallo [weg damit] wie [das auch weg] gehts"
Define Result$
If CreateRegularExpression(0, "\[.*?\]")
Result$ = ReplaceRegularExpression(0, string, "")
Debug Result$
Else
Debug RegularExpressionError()
EndIf