Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kilka wyrazów jako jeden element w wyrażeniu regularnym
shark121
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 5
Dołączył: 31.03.2008

Ostrzeżenie: (0%)
-----


Mam pewien ciąg znaków w formacie

"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.

  1. preg_match('/&quot;([a-zA-Z0-9]+)&lt;([0-9]+)&gt;&lt;(STEAM_0:[0-9]:[0-9]+)&gt;&lt;(CT|TERRORIST)&gt;&quot;/', $tekst);


Wszystko działa bez zarzutu dopóki nie pojawi się nazwa złożona z więcej niż jednego wyrazu. Jakieś podpowiedzi?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dantes
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 5
Dołączył: 22.09.2009

Ostrzeżenie: (0%)
-----


a jakbyś do 1szego ciągu dodał spację?
zdążyłem tylko na szybko sprawdzić RegexPal'em:
  1. ([a-zA-Z0-9 ]+)

poza tym, pierwsze wyrażenie (to powyżej) nie obsłuży Ci znaków : ` ! @ # $ ^ & * ( ) - + [ ] ; ' " : / . ,

przynajmniej z tego co wiem (IMG:style_emoticons/default/winksmiley.jpg)

pozdrawiam

edit:

spacja oczywiście jest za "9"

Ten post edytował dantes 9.11.2010, 22:01:55
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 13:37