Ben şu sorun var.
Kullanıcının giriş atalım (Vikimetin)
======hello((my first program)) world======
Ben, "merhaba", "benim ilk programı" ve "dünya" (boşluk fark) maç istiyorum.
Ancak, giriş için:
======hello(my first program)) world======
I "(merhaba benim ilk programı" ve "dünya" maç istiyorum.
Diğer bir deyişle, herhangi bir mektup, boşluk ve ayrıca tek bir sembol (ikili veya daha fazla) maç istiyorum.
Bu belgelenmiş olarak, \ p {L}, \ p {S} veya \ p {Z} gibi unicode karakter özellikleri ile yapılır here. Olmalıdır
Herhangi bir fikir?
Addendum 1
Regex herhangi \ p {S} {2}, veya \ p {P} {2,} önce, yani unicode açısından herhangi bir çift sembol veya noktalama önce durdurmak zorundadır.
Ben bu konuda bütün Vikimetin ayrıştırmak için çalışıyorum değilim, sorumu dikkatlice okuyunuz. Ben arıyorum regex lexer için üzerinde çalışıyorum, ve bu tür girişler inanılmaz benim ayrıştırıcı basitleştirecek maç yapıyorum IS.
Addendum 2
Desen preg_match()
ile çalışmak gerekir. Ben ilk bölmek olurdu ne hayal edebiliyorum. Belki bazı lookahead kullanmak istiyorsunuz, ben bilmiyorum, ben hayal her şeyi denedim.
Kullanarak sadece preg_match()
lexer geçerli uygulanması ile taş koymak bir gerekliliktir. Bu lexers işe nasıl doğal yoludur, çünkü bu şekilde olmalıdır: Onlar giriş akışı dizileri maç.