我正在尝试通过使用 PyParsing 删除前导或尾随空格字符来清除一些代码。删除前导空格非常容易,因为我可以使用FollowedBy
匹配字符串但不包含它的子类。现在,我的标识字符串后面的内容也需要相同的内容。
这里有一个小例子:
from pyparsing import *
insource = """
annotation (Documentation(info="
<html>
<b>FOO</b>
</html>
"));
"""
# Working replacement:
HTMLStartref = OneOrMore(White(' \t\n')) + (FollowedBy(CaselessLiteral('<html>')))
## Not working because of non-existing "LeadBy"
# HTMLEndref = LeadBy(CaselessLiteral('</html>')) + OneOrMore(White(' \t\n')) + FollowedBy('"')
out = Suppress(HTMLStartref).transformString(insource)
out2 = Suppress(HTMLEndref).transformString(out)
作为输出之一:
>>> print out
annotation (Documentation(info="<html>
<b>FOO</b>
</html>
"));
应该得到:
>>> print out2
annotation (Documentation(info="<html>
<b>FOO</b>
</html>"));
我查看了文档,但找不到与“ LeadBy
”等效FollowedBy
的方法或实现该方法的方法。