webForumDet fria alternativet

regex hjälp

3 svar · 321 visningar · startad av Blixtsystems

BlixtsystemsMedlem sedan maj 2005704 inlägg
#1

Hej,

Håller på att sliter mig i håret med följande:

Har denna text (hand historia för poker):

[-------------------------------------------------------------------------------------------]

** Game ID 1316231597 starting - 2007-04-10 14:59:41
** Gutshot Holdem [Hold 'em] (25.00|50.00 No Limit - Cash Game) Real Money

- FowlersFan sitting in seat 1 with $3098.00
- A_Poker_Punk sitting in seat 2 with $3422.00 [Dealer]
- I_Want_Chips sitting in seat 3 with $3225.00
- Cashman66 sitting in seat 4 with $1350.00
- I_Tilt_Often sitting in seat 5 with $2975.00
- Super_Hero sitting in seat 6 with $2000.00 [Sitting out]

I_Want_Chips posted the small blind - $25.00
Cashman66 posted the big blind - $50.00
I_Tilt_Often called - $50.00
FowlersFan folded
A_Poker_Punk called - $50.00
I_Want_Chips called - $50.00
Cashman66 checked

** Dealing the flop: 9 of Clubs, 2 of Clubs, 3 of Hearts
I_Want_Chips checked
Cashman66 checked
I_Tilt_Often bet - $100.00
A_Poker_Punk folded
I_Want_Chips folded
Cashman66 folded
I_Tilt_Often mucks:
I_Tilt_Often wins $298.00 from the main pot

End of game 1316231597

[-------------------------------------------------------------------------------------------]

Jag vill plocka ut följande bit:

- FowlersFan sitting in seat 1 with $3098.00
- A_Poker_Punk sitting in seat 2 with $3422.00 [Dealer]
- I_Want_Chips sitting in seat 3 with $3225.00
- Cashman66 sitting in seat 4 with $1350.00
- I_Tilt_Often sitting in seat 5 with $2975.00
- Super_Hero sitting in seat 6 with $2000.00 [Sitting out]

Det jag har kört med är:
/-(.+)(with \$[\d.]+)\r?\n\r?\n/

Problemet med just denna hand är att den slutar ju inte med "with $00.00" utan "[Sitting out]" och det skulle kunna vara "[Dealer]".

Så då trodde jag att det skulle funka med typ:
/-(.+)((with \$[\d.]+)|\])\r?\n\r?\n/

Men icke sade nicke...varför inte?

adde2Medlem sedan maj 2000144 inlägg
#2

går det inte göra det enkelt

Nu vet inte jag hur resten av texten ser ut (eller exakt vad du vill ha ut) :) .

Men varför inte göra det enkelt och söka bara på 'sitting in seat \d with ($[0-9\.]+?)' om det nu är dom raderna du vill ha ut (och vill ha ut beloppet)

annars så borde det räcka med att söka på texten...

Peter SMedlem sedan dec. 20025 483 inlägg
#3
/[\n\r]+((?:-[^\n\r]+)(?:[\n\r]+-[^\n\r]+)*)/

Hämta den första delmatchningen.

BlixtsystemsMedlem sedan maj 2005704 inlägg
#4

Jag vill ha hela stycket för att i en separat funktion kunna plocka ur all info som namn, sits och stack.

Modifierade den till detta som jag fick att funka:

/-(([][\r\n\w.-\s$]+)((with \$[\d.]+)|\])\r?\n\r?\n)/

Peters lösning ser dock betydligt smartare och snyggare ut och funkar prima.
Tackar :bire

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)