RegularExpression

Für allgemeine Fragen zur Programmierung mit PureBasic.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

RegularExpression

Beitrag von Andreas21 »

Code: Alles auswählen

If CreateRegularExpression(0, "/[\[*\]]/")

  Dim Result$(0)
  string.s = "713	2011-09-25 19:59:49 temp [abc] irgentwas [def]."
  a = ExtractRegularExpression(0, string, result$())
  
  MessageRequester("Info", "Nb strings found: "+Str(a))
  
  For k=0 To a-1
    Debug Result$(k)
  Next

Else
  MessageRequester("Error", RegularExpressionError())
EndIf
In PHP leuft es ohne Probleme.
In PB bekomme ich nicht den inhalt der zwichen [ und ] steht.
Den fehler find ich leider nicht.
Auch die Forum Suche hat mir nicht geholfen.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: RegularExpression

Beitrag von STARGÅTE »

Die regulären Ausdrücke werden in PB etwas anders definiert.

In CreateRegularExpression() brauchst du keine Delimiter angeben.
Somit reicht: "[\[*\]]"

allerdings finde ich die Suche etwas komisch, denn du suchst hier nach Ausdrücken die eines der zeichen: [ * ] enthalten ...
und nicht nach dem Inhalt

So wäre die Suche nach dem Inhalt:

Code: Alles auswählen

If CreateRegularExpression(0, "(?<=\[)[^\]]*(?=\])")

  Dim Result$(0)
  string.s = "713   2011-09-25 19:59:49 temp [abc] irgentwas [def]."
  a = ExtractRegularExpression(0, string, result$())
  
  MessageRequester("Info", "Nb strings found: "+Str(a))
  
  For k=0 To a-1
    Debug Result$(k)
  Next

Else
  MessageRequester("Error", RegularExpressionError())
EndIf 
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten