我需要在字符串中查找子字符串,如果找不到,请执行操作。所以我这样做,它工作正常:
if 'AAA' not in myString:
print "AAA is not in myString"
然而,我需要的是避免AAA是XAAA的一部分。换句话说,我不希望我的脚本在if 'AAA' not in myString
时注意到“XAAA”的存在。那么如何将上面的if-clause修改为以下内容:
if 'AAA' not in myString except for cases where 'AAA' is a part of 'XAAA':
print "AAA is not in myString"
答案 0 :(得分:7)
我喜欢模块解决方案
if not re.search(r'(?<!X)AAA', myString):
...
答案 1 :(得分:4)
我不希望我的脚本在
"XAAA"
if 'AAA' not in myString
时发现XAAA
存在。
如果myString
不是AAA
的子字符串,您可以先从myString
删除子字符串if 'AAA' not in myString.replace('XAAA', ''):
# do action
的所有匹配项,然后然后测试{1}}:
for i in range(1, len(AlivePlayers), 1):
bar_nein=StringVar()
player_label=tk.Label(self, textvariable=bar_nein)
player_label.pack()
word1=AlivePlayers[i].Name # a string
word2=" the " # a string
word3=AlivePlayers[i].Role.keyword # a string
phrase=word1+word2+word3
bar_nein.set(phrase)
答案 2 :(得分:3)
有两种方式。
您可以从字符串中删除XAAA
,然后比较:
if 'AAA' not in myString.replace('XAAA', ''):
# do something
或者你可以先检查一下然后比较:
if 'XAAA' not in myString:
if 'AAA' not in myString:
# do something
两衬垫:
if 'XAAA' not in myString and 'AAA' not in myString:
# do something
答案 3 :(得分:0)
正则表达式可能会非常适合您。
例如,您可以将字符串与所谓的&#34;正则表达式匹配,&#34;的 /[^X]?AAA/
强>
此正则表达式测试字符串AAA
是否存在 not ,字符串X
前面的字符串?
。
(需要AAA
来支持X
出现在字符串开头的可能性,其中array_map
可能在其前面。“
每种编程语言都支持正则表达式......&#34;这就是原因。&#34;
(仅供参考:&#34;正则表达式是一个非常深的水池,非常值得探索。&#34; 在实际应用中,它会产生许多&#34 ;实际的应用,&#34;比如这个,即使你所做的只是撇去它的表面而且非常愉快地呆在那里。)