我正在处理的数据...
*
标记属性 A
**
标记属性 B
***
标记属性 A 和 B
text1 = "spam*eggs" # A
text2 = "eggs**spam" # B
text3 = "spam***spam" # A & B
测试属性 B 很容易,
"**" in <string>
但是使用相同的策略测试属性 A 会给出 text2 的误报。
>>> "*" in text2
True
我想测试属性 A。是否有一种 Pythonic 方法可以在不使用正则表达式的情况下执行此操作?我不想使用正则表达式,因为我与不熟悉正则表达式的初学者共享代码。
最佳答案
试试这个:
idx = txt.index('*')
if txt[idx+1] != '*':
print 'A'
elif txt[idx+2] != '*':
print 'B'
else:
print 'A & B'
上述内容将引发极端情况的异常 - 例如,如果字符串不存在,或者字符串是最后一个字符。此解决方案的另一个好处是执行一次文本遍历(调用 index()
)。
关于python - 在 python 中,测试字符串的 1 或 3 个连续实例,但不是 2 个(没有正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19498771/