Vorschlag: Sammelthread für Reguläre Ausdrücke

Für allgemeine Fragen zur Programmierung mit PureBasic.
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

Vorschlag: Sammelthread für Reguläre Ausdrücke

Beitrag von ThoPie »

Was haltet ihr davon, einen Sammelthread für diverse reguläre Audrücke für die RegularExpression-Library anzulegen (E-Mail, Sozialversicherungsnummer, ISBN-Nummer etc.)? So muss nicht jeder das Rad noch einmal neu erfinden.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

kannst du doch anlegen, hindert dich doch keiner dran.
Obwohl man diese Teile ja Googlen kann, und am Syntax der reguläre Audrücke ändert sich ja nix, egal ob php, pb uder sonst was...

Ich persönlich kanns noch nicht gebrauchen weil man keinen zugriff auf die gespeicherten Bereiche hat, also bis jetzt nur das Abfragen gut geht, aber nicht das ersetzen
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
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Wir können diesen Thread ja benutzen, um nach speziellen Ausdrücken zu fragen. Andere können dann hier die Lösung posten und wiederum andere können sich in diesem Archiv bedienen und Lösungen suchen.

Aus dem Stand wüsste ich keinen speziellen Ausdruck, ich denke, es kommt meistens auf die Situation an, was man gerade programmiert.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
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 »

> Aus dem Stand wüsste ich keinen speziellen Ausdruck
Feststellen ob es sich um eine PB-Procedure handelt, zum Beispiel.
Das Word Procedure??????, Name mit A oder _ ansonsten Aplhanum und Klammern
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
FGK
Beiträge: 249
Registriert: 09.01.2005 14:02
Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit
Wohnort: Augsburg

Beitrag von FGK »

Ich finde das ne ganz nette Idee mit der Sammlung, aber
würde das nicht speziell hier neu im Board aufrollen
Dazu gibts haufenweise Sites im Netz wie z.b. http://regexlib.com/Search.aspx
Da kann man nach regexp Ausdrücken suchen und da ist für jede Gelegenheit was mit dabei.

Gruß FGK
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

ts-soft hat geschrieben:> Aus dem Stand wüsste ich keinen speziellen Ausdruck
Feststellen ob es sich um eine PB-Procedure handelt, zum Beispiel.
Das Word Procedure??????, Name mit A oder _ ansonsten Aplhanum und Klammern
Meinst du sowas?

Code: Alles auswählen

proc$+"Procedure.b HelloWorld(param1.l, text$)"+#CRLF$
proc$+"	Protected TrulyMadlyDeeply.s"
proc$+"	TrulyMadlyDeeply="+#DQUOTE$+"Cascada"+#DQUOTE$+#CRLF$
proc$+"	ProcedureReturn 1<<Random(31) : EndProcedure ; SOGAR KOMMENTARE DÜRFEN HIER NOCH STEHEN  "

keineProc$+"sinn=42 : Procedure.c myAsc(character.s) : ProcedureReturn Asc(caharacter) ::EndProcedure : nochMehr=Code+ZumTesten"


Procedure.l isCodeAPBProcedure(code$)
	Static expression.l
	If Not expression
		expression=CreateRegularExpression(#PB_Any, "(?s)^\s*Procedure(|(|C)DLL|C)(|\.[a-zA-Z_]\w*) +[a-zA-Z_]\w*\(.*\)(\:|.+).*(\:|\s*)EndProcedure\s*(|\;.*\s*)$")
	EndIf
	ProcedureReturn MatchRegularExpression(expression, code$)
EndProcedure

Debug isCodeAPBProcedure(proc$)
Debug isCodeAPBProcedure(keineProc$)
Prüft, ob der übergebene Text eine Procedure in PB-Syntax ist.

Soll ich die einzelnen Teile des RegExp erläutern? Mach ich gern. <)
Zuletzt geändert von AND51 am 25.05.2008 22:20, insgesamt 4-mal geändert.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
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 »

> Soll ich die einzelnen Teile des RegExp erläutern?
Nein, da der Code die Aufgabe nicht erfüllt. ProcedureDLL wird zum Beispiel
nicht als Procedure erkannt. Fehlt wohl noch ne Menge :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Code: Alles auswählen

(?i)^\s*procedure(dll|cdll|c|)(|\.\w+) +\w+\(.*\)
Zuletzt geändert von edel am 25.05.2008 21:30, insgesamt 1-mal geändert.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

ne Menge fehlt nicht, ich habe schon berücksichtigt, dass eine prozedur so sein kann:

Code: Alles auswählen

Procedure a():EndProcedure
aber auch so

Code: Alles auswählen

             Procedure.b            WasGanzLanges_(param, OptionalerParam$="()/&&,"):LOL=42

; nix besonderes
               result=45:ProcedureReturnresult:::::EndProcedure
Gibt's nochwas, was ich vergessen habe? Ich rüste meinen Code nach.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

eine procedure muss immer mit endprocedure enden, daher reicht es wenn
du nur die erste Zeile ueberpruefst
Antworten