Ich schreibe gerade einen Parser für ColdFusion-Code. Ich bin mit einem Regex (in c#), um den Namen datasource Attribut des cfquery-Tag zu extrahieren.
Die Regex lautet vorläufig wie folgt <cfquery\s.*datasource\s*=\s*(?:'|")(.*)(?:'|")
es funktioniert gut für Zeichenketten wie <cfquery datasource="myDS"
oder <cfquery datasource='myDS'
Aber es wird verrückt, wenn man Zeichenketten parst wie <cfquery datasource="#GetSourceName('myDS')#"
Offensichtlich ist der Teil der Regex (?:'|") die Ursache. Gibt es eine Möglichkeit, nur einfache Anführungszeichen zu finden, wenn die erste Übereinstimmung ein einfaches Anführungszeichen war? Und nur das doppelte Anführungszeichen, wenn die erste Übereinstimmung ein doppeltes Anführungszeichen war?
Vielen Dank im Voraus!