"nazwa<liczba><identyfikator gry><drużyna>"
Objaśnienia:
nazwa - jeden lub więcej wyrazów zawierający tylko i wyłącznie litery języka angielskiego, cyfry i znaki ` ! @ # $ ^ & * ( ) - + [ ] ; ' " : / . ,
liczba - dowolna liczba większa od 0
identyfikator gry - identyfikator gracza w grze o formacie STEAM_0:[0-9]:[0-9]
drużyna - nazwa drużyny CT lub TERRORIST
Na początku pisania kodu założyłem, że na moje potrzeby nazwa nie będzie składać się z więcej niż jednego wyrazu i nie będzie zawierać żadnych dziwnych, niepotrzebnych znaków. Teraz przyszła pora by wykorzystać ten kod w podobnym celu, jednak teraz już nie mam żadnego wpływu na to jaką nazwę otrzymam, wobec czego zmuszony jestem dostosować ten kod pod nowe wymagania. Zmiana dotyczy tylko nazwy, a moja wiedza na temat wyrażeń regularnych kończy się na jednym wyrazie. Próbowałem różnych kombinacji z \s, ale bezskutecznie. Oto jak wygląda moje obecne wyrażenie. Żeby ominąć późniejsze problemy od razu sobie całość przepuszczam przez htmlspecialchars.
preg_match('/"([a-zA-Z0-9]+)<([0-9]+)><(STEAM_0:[0-9]:[0-9]+)><(CT|TERRORIST)>"/', $tekst);
Wszystko działa bez zarzutu dopóki nie pojawi się nazwa złożona z więcej niż jednego wyrazu. Jakieś podpowiedzi?