python分割字符串中文_在python中拆分字符串

下面是一个简单的解析器(根据示例输入进行测试),它引入了状态设计模式。在

在现实世界中,您可能希望使用PLY之类的东西来构建一个真正的解析器。在class SimpleParser(object):

def __init__(self):

self.mode = None

self.result = None

def parse(self, text):

self.initial_mode()

self.result = []

for word in text.split(' '):

self.mode.handle_word(word)

return self.result

def initial_mode(self):

self.mode = InitialMode(self)

def bracket_mode(self):

self.mode = BracketMode(self)

def quote_mode(self):

self.mode = QuoteMode(self)

class InitialMode(object):

def __init__(self, parser):

self.parser = parser

def handle_word(self, word):

if word.startswith('['):

self.parser.bracket_mode()

self.parser.mode.handle_word(word[1:])

elif word.startswith('"'):

self.parser.quote_mode()

self.parser.mode.handle_word(word[1:])

else:

self.parser.result.append(word)

class BlockMode(object):

end_marker = None

def __init__(self, parser):

self.parser = parser

self.result = []

def handle_word(self, word):

if word.endswith(self.end_marker):

self.result.append(word[:-1])

self.parser.result.append(' '.join(self.result))

self.parser.initial_mode()

else:

self.result.append(word)

class BracketMode(BlockMode):

end_marker = ']'

class QuoteMode(BlockMode):

end_marker = '"'


版权声明:本文为weixin_42549496原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。