我想在字符串中找到每个单个字母字符出现的所有索引。我不想捕获单个char html代码。
这是我的代码:
import re
s = "fish oil B stack peanut c <b>"
words = re.finditer('\S+', s)
has_alpha = re.compile(??????).search
for word in words:
if has_alpha(word.group()):
print (word.start())
期望的输出:
9
24
答案 0 :(得分:4)
这样做:
r'(?i)\b[a-z]\b'
打破它:
您的代码可以简化为:
for match in re.finditer(r'(?i)\b[a-z]\b', s):
print match.start()
答案 1 :(得分:2)
使用您的格式(as you wanted),但只添加一个简单的支票。
import re
s = "fish oil B stack peanut c <b>"
words = re.finditer('\S+', s)
has_alpha = re.compile(r'[a-zA-Z]').search
for word in words:
if len(word.group()) == 1 and has_alpha(word.group()):
print (word.start())
>>>
9
24
答案 2 :(得分:1)
在最一般的情况下,我会说:
re.compile(r'(?i)(?<![a-z])[a-z](?![a-z])').search
使用lookarounds说&#34;一封字母后面没有另一个字母,后面跟着另一封字母&#34;。