Python-如何用非字母字符分割字符串
问题内容:
我正在尝试使用python解析c ++源代码行。我唯一感兴趣的是include指令。
#include "header.hpp"
我希望它具有灵活性,并且仍然可以使用以下较差的编码样式:
# include"header.hpp"
我已经到了可以在#之前和之后读取行并修剪空白的地步。但是,我仍然需要通过读取字符串直到遇到非字母字符(不管它是空格,引号,制表符还是尖括号)来找出它是什么指令。
所以基本上我的问题是:如何分割以字母开头的字符串,直到遇到非字母?
我想我可以用正则表达式来做到这一点,但是我在文档中没有找到任何想要的东西。
另外,如果有人对我如何获得引号或尖括号内的文件名有建议,那将是一个加号。
问题答案:
您可以使用正则表达式来做到这一点。但是,您也可以使用一个简单的while
循环。
def splitnonalpha(s):
pos = 1
while pos < len(s) and s[pos].isalpha():
pos+=1
return (s[:pos], s[pos:])
测试:
>>> splitnonalpha('#include"blah.hpp"')
('#include', '"blah.hpp"')