webForumDet fria alternativet

Värde inom första parantesen eller inget

Webbutveckling

6 svar · 386 visningar · startad av ironhead

Medlem sedan mars 20011 346 inlägg
Frågan#1

Hej!

Sliter mitt hår :-/
Behöver lite hjälp med ett mönster.

behöver plocka ut värdet inom den första parantesen, och om det inte finns ska det värdet bli tomt.

jag har några stängar som kan vara:
"78,1kW / 11000"
"7,2 kW (9,8 hk) @ 8000 rpm"
"Med trycksatt luftintag: 132 kW (180 hk) / 12500 varv. Utan trycksatt luftintag: 126,4 kW (172 hk) / 12500 varv."

Jag testade denna sträng: "\d{2,3}[ hk]", men blir fel om det inte finns nån parantes eller antal hk är mindre än 2 :(

Medlem sedan dec. 20025 483 inlägg
#2
\([^\)]+\)
Medlem sedan mars 20011 346 inlägg
#3

Nästan lysande....skulle inte vilja ha paranteserna med utan bara "180hk"

Medlem sedan dec. 20025 483 inlägg
#4
\(([^\)]+)\)

Svaret ligger i submatch 1.

Medlem sedan mars 20011 346 inlägg
#5

Hur får jag ut submatch?
Min funktion ser ut såhär:

    Public Function get_hk(ByVal in_Str)
        Dim re As New Regex("\(([^\)]+)\)")
        Dim match As String = re.Match(in_Str).ToString
        get_hk = match
    End Function
Medlem sedan dec. 20025 483 inlägg
#6

Nu kan jag inte det språk du använder. Men kika på Matchs medlemmar - speciellt Groups och Captures:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtextregularexpressionsmatchclasstopic.asp

Medlem sedan mars 20011 346 inlägg
#7

Ok! Jättetack för detta :)

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)