I have a set of characters: \\,/,?,% etc. I also have a string, lets say \"This is my string % my string ?\"
I want to check if any of the characters are present in
You could use any here.
>>> string = r"/\?%"
>>> test = "This is my string % my string ?"
>>> any(elem in test for elem in string)
True
>>> test2 = "Just a test string"
>>> any(elem in test2 for elem in string)
False
In [1]: import re
In [2]: RE = re.compile('[\\\/\?%]')
In [3]: RE.search('abc')
In [4]: RE.search('abc?')
Out[4]: <_sre.SRE_Match at 0x1081bc1d0>
In [5]: RE.search('\\/asd')
Out[5]: <_sre.SRE_Match at 0x1081bc3d8>
None
indicates non characters in the set are present in the target string.
I think Sukrit probably gave the most pythonic answer. But you can also solve this with set operations:
>>> test_characters = frozenset(r"/\?%")
>>> test = "This is my string % my string ?"
>>> bool(set(test) & test_characters)
True
>>> test2 = "Just a test string"
>>> bool(set(test2) & test_characters)
False
Use regex!
import re
def check_existence(text):
return bool(re.search(r'[\\/?%]', text))
text1 = "This is my string % my string ?"
text2 = "This is my string my string"
print check_existence(text1)
print check_existence(text2)