Strona 3 z 77
Re: CMUD
: 10 lis 2011 16:12
autor: Zurwen
Help -> Pattern Matching
%p match any punctuation
%s match any amount of white space (spaces, tabs)
(%w) (%w) {@rasa}{%p|%s} powinno działać.
Re: CMUD
: 10 lis 2011 16:21
autor: Rennz
Właściwie to skoro dodałeś listę z rasami to zawartość następnego {} nie jest potrzebna (po liście z rasami jest spacja, która automatycznie wykluczy wyrazy typu 'ogromny', 'krasnoludzki' itp.).
Re: CMUD
: 10 lis 2011 16:26
autor: Elltharion
Nie działa.. pewnie sprawa []{}(), albo coś.
Re: CMUD
: 10 lis 2011 16:38
autor: Zurwen
'Nie działa' to trochę za mało, żeby stwierdzić dlaczego nie działa.
Re: CMUD
: 10 lis 2011 16:45
autor: Elltharion
Może to mieć coś w wspólnego z typem zmiennej?
Mam zaznaczoną array
{kobieta|polelf|elfka|halfling|krasnolud|niziolka|mutantka|halflinka|gnom|krasnoludka|elf|gnomka|niziolek|mezczyzna|polelfka|mutant|mutantka|"ogr"|ogrzyca}
Re: CMUD
: 10 lis 2011 17:48
autor: Rennz
A po co ogr w ""?
Re: CMUD
: 10 lis 2011 17:58
autor: Elltharion
Chcialem sprawdzić czy działa na "ogromny" jednak nie działało, ale już nie zmieniałem, bo reszta działała.
Re: CMUD
: 10 lis 2011 18:01
autor: Zurwen
Nie.
rasy = "ork|troll"
(%w) (%w) {@rasy}{%p|%s}
Działają:
duzy zwykly troll i mis
duzy zwykly troll,
duzy zwykly troll.
Nie działają:
duzy zwykly trollik
Czyli jak być powinno.
Rennz: Nie masz racji, (%w) (%w) {@rasy} złapie duzy zwykly trollik.
Re: CMUD
: 10 lis 2011 18:12
autor: Rennz
W sumie Zurwen to masz rację - odebrałem odruchowo 'powinno działać' jako część patterna (-: Gdyby faktycznie tak było to by nie trzeba dawać, ale w tym wypadku jak najbardziej masz rację.
Re: CMUD
: 10 lis 2011 18:27
autor: Suvi
Ale po co się użerać z koszmarnymi patternami cmuda, skoro można to zrobić uniwersalnym regexpem?
rasy = ogr|ogrzyc|polelf|polelfk|polelfc|elf|elfk|elfc|
mezczyzn|kobiet|kobiec|krasnolud|krasnoludk|krasnoludc|
gnom|gnomk|gnomc|niziolek|niziolk|niziolc|halfling|halflink|halflinc
"\a+ \a+ (@rasy)"
maly brudny ogr przybywa
malego brudnego ogra ranisz w leb
mala brudna ogrzyca lubi cie
stoi drzewo, ktore jest ogromne
malemu brudnemu ogrowi dajesz jablko
"\a+ \a+ (@rasy)(.|) " <- tu jest spacja na końcu
łapie 'wyraz' 'wyraz' 'rasa' i jeden dowolny znak/nic + spacja na końcu
maly brudny ogr przybywa
malego brudnego ogra ranisz w leb
mala brudna ogrzyca lubi cie
stoi drzewo, ktore jest ogromne
malemu brudnemu ogrowi dajesz jablko
"\a+ \a+ (@rasy)(.e|em|owi|.)"
maly brudny ogr przybywa
malego brudnego ogra ranisz w leb
mala brudna ogrzyca lubi cie
stoi drzewo, ktore jest ogromne
malemu brudnemu ogrowi dajesz jablko
(tekst) to lista rozdzielona |
\a+ łapie jedną lub więcej liter
. to jeden dowolny znak
Więcej jest w dokumentacji, sporo też można znaleźć "w internetach". No i o wiele bardziej zaawansowane niż patterny cmudowe zastosowania np. w funkcjach %regex i %subregex.
re Zurwen na dole:
Pozwala na większą precyzję, m.in. na wykluczanie jakiegoś słowa/znaku, jest szerzej stosowany i można ten sam pattern przenieść np. do tfa.