我正在尝试使用PyParsing来解析一些自动生成的sqlserver脚本。我无法让解析器在GO
关键字处停止解析。你知道吗
from pyparsing import *
test = '''
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
'''
working = Literal("SET") + Word(printables) * 2
not_working = Literal("SET") + OneOrMore(Word(printables) + ~Literal("GO"))
print('Working')
for result, start, end in working.scanString(test):
print( "Found {0} at [{1}:{2}]".format(result, start, end))
print('\nNot working')
for result, start, end in not_working.scanString(test):
print( "Found {0} at [{1}:{2}]".format(result, start, end))
输出如下:
"Working"
Found ['SET', 'ANSI_NULLS', 'ON'] at [1:18]
Found ['SET', 'QUOTED_IDENTIFIER', 'ON'] at [22:46]
"Not working -- missing the ON keyword"
Found ['SET', 'ANSI_NULLS'] at [1:15]
Found ['SET', 'QUOTED_IDENTIFIER'] at [22:43]
出于某种原因,我的“notworking”示例没有获得ON
关键字。当解析器看到GO
关键字时,如何告诉它停止?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐