FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Nykomling
|
Hej!
Jag behöver hjälp med att skapa ett regular expression. Låt oss säga att vi har följande data: <tr> <td>Snygg t-shirt</td> <td>Pris: 199:-</td> </tr> <tr> <td>ful t-shirt</td> <td>Pris: 99:-</td> </tr> <tr> <td>Cool jacka</td> <td>Pris: 599:-</td> </tr> Om jag nu vill plocka ut namn och priser på ovanstående produkter så kan jag skriva ett reg.exp som ser ut så här: <tr>\s*<td>(?<namn>.*?)</td>\s*<td>Pris: (?<pris>\d*):-</td>\s*</tr> Men om det nu är en produkt som saknar pris: <tr> <td>Snygg t-shirt</td> <td>Pris: 199:-</td> </tr> <tr> <td>ful t-shirt</td> <td>Slutsåld</td> </tr> <tr> <td>Cool jacka</td> <td>Pris: 599:-</td> </tr> Så kommer jag att hitta: Snygg t-shirt, 199 ful t-shirt, 599 Har någon ett bra knep för att undvika detta? Helst skulle jag vilja att det hoppades över helt och hållet. |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Bara ett inlägg till!
|
Ta hänsyn till </tr>. Dvs. ingen </tr> får finnas mellan produkt och pris.
Har du funderat på att parsa HTML-koden istället så du får ut en CSV eller "ASCII-tabell"? HTML-parsers kan du hitta färdiga att använda. |
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Nykomling
|
Citat:
Jag får även fundera på att använda HTML-parser, men reg.exp. funkar bra för det mesta. Tack för hjälpen |
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Har WN som tidsfördriv
|
Det här kanske funkar bättre?
Kod:
<tr>\s*<td>(?<namn>.*?)</td>\s*<td>[^<\d]+(?<pris>\b\d+\b)[^<]*</td>\s*</tr> |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Nykomling
|
Citat:
|
||
![]() |
![]() |
Svara |
|
|