Page 250 - 6734
P. 250
world або hello
# або MatchFirst([Literal("world"),Literal("hello")])
print(p.parseString(s))
#['hello']
p=Literal("world")&Literal("hello") # як +, але не
послідовно, а в довільному порядку
# або p=Each([Literal("world"), Literal("hello")])
print(p.parseString(s))
#['hello', 'world']
# літерал і слово (якщо є; але без нього)
p=Literal('hello')+Optional(Suppress(Word(alphas)))
print(p.parseString(s)) # без другого слова
#['hello']
def fn(s, loc, toks):
print(s, loc, toks)
p=Word(alphas).setParseAction(fn)+Word(alphas) #
викликає функцію fn для першого слова
p.parseString(s)
#hello world! 0 ['hello']
p=Word(alphas).setResultsName("word1")+Word(alphas+'!
') # у виразі задано ім'я для першого слова
print(p.parseString(s).word1)
#hello
p=Literal("hello").setParseAction(replaceWith("hi"))
print(p.transformString(s)) # заміна hello на hi
#hi world!
alphasUA='АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯабвгґдеєжз
иіїйклмнопрстуфхцчшщьюя'
alphasRU='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзи
249