有没有办法在Python 3 +中实现这个目标?
我有一个字符串He said: <p>He<i>ll</i>o how are you?
,它将这些HTML标记包含为纯文本。方法find()
返回带有搜索字符串的索引(位置)。是否有find()
的任何正则表达式版本,我可以输入此<[^<]+?>
作为正则表达式来查找&lt; &GT; (或者可能是它的负向前瞻) - 所以忽略它们来寻找单词Hello
但仍然在原始字符串中获得绝对位置?
例如:
String = He said: <p>He<i>ll</i>o how are you?
功能可以是foo(String, "<[^<]+?>", "Hello")
foo(search in this string, exclude characters matching this regex, look for this
..并获得13
作为原始字符串中Hello字的位置作为回报?
答案 0 :(得分:0)
re.search('(?:<[^<]+?>)*'.join('Hello'), 'He said: <p>He<i>ll</i>o how are you?').start()
返回12(第13个字符)。
如果您不确定Hello
是否在字符串中,则应在调用search
之前检查None
是否返回start
。