簡體   English   中英

如何在Python中獲取字符位置列表?

[英]How to get a list of character positions in Python?

我正在嘗試編寫一個用於清理Web應用程序中的unicode輸入的函數,並且我目前正在嘗試在此頁末尾重現PHP函數: http : //www.iamcal.com/understanding-bidirectional-text /

我正在Python中尋找與PHP相同的preg_match_all。 RE函數findall返回沒有位置的匹配,搜索僅返回第一個匹配。 是否有任何功能可以讓我每一次比賽以及文本中的相關位置返回給我?

使用字符串abcdefa和模式a|c ,我想要得到類似[('a',0),('c',2),('a',6)]

謝謝 :)

嘗試:

text = 'abcdefa'
pattern = re.compile('a|c')
[(m.group(), m.start()) for m in pattern.finditer(text)]

我不知道讓re.findall為您執行此操作的方法,但是以下方法應該有效:

  1. 使用re.findall查找所有匹配的字符串。
  2. 使用str.index查找re.findall返回的所有字符串的關聯索引。 但是,在執行此操作時要小心:如果一個字符串在不同的位置具有兩個確切的子字符串,則re.findall將返回兩個子字符串,但是您需要告訴str.index您正在尋找第二個出現的位置或第nth個出現的位置出現字符串。 否則,它將返回您已經擁有的索引。 我想到的最好的方法是維護一個字典,該字典將re.findall結果的re.findall作為鍵,並將索引列表作為值

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM