擅长:python、mysql、java
<p>你知道吗
写一个简单的状态机怎么样?一个简单的例子(只有双引号字符串)可以是:</p>
<pre><code>STATE_OUTSTRING = 0
STATE_INSTRING = 1
STATE_INSTRINGBACKSLASH = 2
def getstrings(text):
state = 0
strings = []
curstring = None
for c in text:
if state == STATE_OUTSTRING:
if c == '"':
state = STATE_INSTRING
curstring = ""
elif state == STATE_INSTRING:
if c == '\\':
state = STATE_INSTRINGBACKSLASH
elif c == '"':
state = STATE_OUTSTRING
strings.append(curstring)
curstring = None
else:
curstring += c
else: # STATE_INSTRINGBACKSLASH
curstring += c
state = STATE_INSTRING
return strings
</code></pre>
<p>例如,如果需要,可以添加<code>STATE_INCOMMENT</code>这样的状态。你知道吗</p>