Permalänk
Medlem

regexp matchning

Lite kort ska hinna med bussen, men jag är för kass på regexp, kör via vbscript

Jag vill få ut "Vettig text här"

.... massa annan kod med eller utan drawtext
DrawText p1, "*V*P TEXTPKT1*", 1, 1
DrawText p3, "%N I1%", 2, 1
DrawText p4, "%N I2%", 1, 0
DrawText p5, "%N I3%", 0, 2
DrawText p6, "%N I4%", 0, 2
DrawText p7, "Vettig text här"
.... massa annan kod med eller utan drawtext

Global = True
IgnoreCase = True

Jag har hittils
regexp1.Pattern = "DrawText"
regexp2.Pattern = "\"".*?\""|\[.*?\]"

If regexp1.Test(sträng) Then ' matcha drawtext mönster 1
If regexp2.Test(sträng) Then ' matcha " "
End If

Går det att förenkla i ett steg typ DrawText|\"".*?\""|\[.*?\] , detta fungerar men som ett OR statement får med för mycket, jag vill ha DrawText AND " "

Det viktigaste jag vill även ta bort allting som matchar "% "* eller typ "x där x är alla konstiga tecken så att jag enbart får ut meningar

Permalänk
Medlem
Skrivet av lappen81:

^DrawText.*?"(?<text>[^%*].*?)"$

MultiLine som options på regexp.

Den lägger allt som inte börjar med % eller * inom dubbelfnuttarna i en Named Capturing Group som heter text.

Permalänk
Medlem
Skrivet av Rashnu:

^DrawText.*?"(?<text>[^%*].*?)"$

MultiLine som options på regexp.

Den lägger allt som inte börjar med % eller * inom dubbelfnuttarna i en Named Capturing Group som heter text.

vbscript stödjer inte named Groups, får se om jag hittar en lösning men i övrigt så är det kanon

Permalänk
Medlem

Gör en vanlig positioned group?

Permalänk
Medlem
Skrivet av Pie-or-paj:

Gör en vanlig positioned group?

tack "(DrawText.*?)(""[\w].*"")" och Output match.FirstIndex &": " & match.SubMatches(1)

löste det