我試圖找到一個字符串「爲」Python中找到一個特定的詞
str = 'foreign'
re.findall(r'for', str)
上面的代碼輸出[「爲」]這個詞相匹配,但是這不是我要找的。 也許我必須使用re.match,但我不確定。 任何幫助將不勝感激!
我試圖找到一個字符串「爲」Python中找到一個特定的詞
str = 'foreign'
re.findall(r'for', str)
上面的代碼輸出[「爲」]這個詞相匹配,但是這不是我要找的。 也許我必須使用re.match,但我不確定。 任何幫助將不勝感激!
你只是想檢查字符串是否包含單詞或其中的一部分? 的Python的方式來做到這一點是:
In [15]: s = 'foreign, for fore'
In [16]: 'for' in s
Out[16]: True
對於'這對我來說都是陌生的'也是如此,但也可能是不正確的。 –
這是他不清楚的一點,他是否想要確保整個單詞作爲一個單詞包含在句子中。 – asafm
你要得到一個布爾值? bool(re.findall(r'for', str))
怎麼樣? (順便說一句,if
聲明會隱含地這樣做,所以if re.findall(r'for', str):
就可以)。
如果你不需要使用正則表達式,你也可以使用:'for' in str
(它「返回」一個布爾值)。
哇,謝謝! – Joseph
如果你堅持要用regex
檢查,如果一個子串在一個字符串,請嘗試:
>>> import re
# If input is a sentence
>>> s = "foreign"
>>> substr = r"for"
>>> [i for i in s.split() if re.findall(substr,i)]
['foreign']
>>> s = "forex is a foreign concept ."
>>> [i for i in s.split() if re.findall(substr,i)]
['forex', 'foreign']
# If input is a list of words
>>> s = ['forex', 'is', 'a', 'foreign', 'concept', '.']
>>> [i for i in s if re.findall(substr,i)]
['forex', 'foreign']
如果你想檢查一個子的存在,在一個字符串,返回字符串:
>>> s = "foreign"
>>> substr = "for"
>>> [i for i in s.split() if substr in s]
['foreign']
如果你想檢查一個子的存在,在一個字符串,並返回一個布爾值:
>>> s = "foreign"
>>> substr = "for"
>>> substr in s
True
>>> "for" in "foreign"
True
當然,試圖去撫蟒蛇自然語言是不會工作:
>>> "for" in "foreign"
True
>>> is "for" in "foreign" ?
File "<stdin>", line 1
is "for" in "foreign" ?
^
SyntaxError: invalid syntax
你試圖找到如果單詞'for'是在一個較大的文本,或者如果* *整個字符串等爲' '?如果後者爲什麼不用'str =='來替換''? –