我如何在 python 字符串中找到非 ASCII 字符的索引?
how can i finding the index of non-ASCII character in python string?
Python 有 string.find() 和 string.rfind() 来获取字符串中子字符串的索引。
和re.search(regex,string) 得到字符串中子串的'first index'。但是,这个函数是 return 来匹配对象 :(
所以我想知道,合并这两个函数。通过正则表达式检查字符串和 return 第一个索引。 (索引不匹配对象类型:b)
示例:
string = "abcdeÿÿaaaabbbÿÿcccdddÿÿeeeÿÿ"
print custom(string)
结果:
>>> 5
非ASCII范围是[^\x20-\x7E],如何实现这个功能??
如果要使用这 2 个功能,请使用 find
中的第一组 re.search
:
>>> g = "abcdeÿÿaaaabbbÿÿcccdddÿÿeeeÿÿ"
>>> import re
>>> g.find(re.search(r'[^\x20-\x7E]',g).group(0))
5
但是如果你只想找到索引 re.search
有 start
方法 return 匹配字符串的索引 :
>>> re.search(r'[^\x20-\x7E]',g).start()
5
你也可以不用正则表达式来做:
>>> import string
>>> next(i for i,j in enumerate(g) if j not in string.ascii_letters)
5
"MatchObjects" 有一个 start
方法可以使用:
import re
def custom(s):
mat = re.search(r'[^\x20-\x7E]', s)
if mat: return mat.start()
return -1 # ?? match failed
string = "abcdeÿÿaaaabbbÿÿcccdddÿÿeeeÿÿ"
print(custom(string)) # 5
Python 有 string.find() 和 string.rfind() 来获取字符串中子字符串的索引。
和re.search(regex,string) 得到字符串中子串的'first index'。但是,这个函数是 return 来匹配对象 :(
所以我想知道,合并这两个函数。通过正则表达式检查字符串和 return 第一个索引。 (索引不匹配对象类型:b)
示例:
string = "abcdeÿÿaaaabbbÿÿcccdddÿÿeeeÿÿ"
print custom(string)
结果:
>>> 5
非ASCII范围是[^\x20-\x7E],如何实现这个功能??
如果要使用这 2 个功能,请使用 find
中的第一组 re.search
:
>>> g = "abcdeÿÿaaaabbbÿÿcccdddÿÿeeeÿÿ"
>>> import re
>>> g.find(re.search(r'[^\x20-\x7E]',g).group(0))
5
但是如果你只想找到索引 re.search
有 start
方法 return 匹配字符串的索引 :
>>> re.search(r'[^\x20-\x7E]',g).start()
5
你也可以不用正则表达式来做:
>>> import string
>>> next(i for i,j in enumerate(g) if j not in string.ascii_letters)
5
"MatchObjects" 有一个 start
方法可以使用:
import re
def custom(s):
mat = re.search(r'[^\x20-\x7E]', s)
if mat: return mat.start()
return -1 # ?? match failed
string = "abcdeÿÿaaaabbbÿÿcccdddÿÿeeeÿÿ"
print(custom(string)) # 5