如何在python字符串中找到非ASCII字符的索引?

hol*_*uin 4 python regex string search range

Python有string.find()和string.rfind()来获取string中子字符串的索引.

并使用re.search(regex,string)来获取字符串中子字符串的"第一个索引".但是,这个函数返回匹配对象:(

所以我想知道,合并这两个功能.通过正则表达式来检查字符串并返回第一个索引.(索引不匹配对象类型:b)

例如:

string = "abcdeÿÿaaaabbbÿÿcccdddÿÿeeeÿÿ"
print custom(string)
Run Code Online (Sandbox Code Playgroud)

结果:

>>> 5
Run Code Online (Sandbox Code Playgroud)

非ASCII范围是[^\x20-\x7E],如何实现这个功能?

Kas*_*mvd 5

如果要使用此功能2使用的第一组re.searchfind:

>>> g = "abcdeÿÿaaaabbbÿÿcccdddÿÿeeeÿÿ"
>>> import re
>>> g.find(re.search(r'[^\x20-\x7E]',g).group(0))
5
Run Code Online (Sandbox Code Playgroud)

但是如果你只是想找到索引re.searchstart返回匹配字符串索引的方法:

>>> re.search(r'[^\x20-\x7E]',g).start()
5 
Run Code Online (Sandbox Code Playgroud)

你也可以没有正则表达式:

>>> import string
>>> next(i for i,j in enumerate(g) if j not in string.ascii_letters)
5
Run Code Online (Sandbox Code Playgroud)