Python查找特定的单词

Python查找特定的单词,python,regex,Python,Regex,我正在尝试查找字符串是否与单词“for”匹配 str = 'foreign' re.findall(r'for', str) 上面的代码输出['for'],但这不是我想要的。 也许我必须使用re.match,但我不确定。 任何帮助都将不胜感激 使用\b标记某个单词的边框: In [782]: s = 'foreign, for fore' In [783]: re.findall(r'\bfor\b', s) Out[783]: ['for'] 从: \b是当前位置位于单词边界的断言 使

我正在尝试查找字符串是否与单词“for”匹配

str = 'foreign'
re.findall(r'for', str) 
上面的代码输出['for'],但这不是我想要的。 也许我必须使用re.match,但我不确定。
任何帮助都将不胜感激

使用
\b
标记某个单词的边框:

In [782]: s = 'foreign, for fore'

In [783]: re.findall(r'\bfor\b', s)
Out[783]: ['for']
从:

\b是当前位置位于单词边界的断言


使用
\b
标记某个单词的边框:

In [782]: s = 'foreign, for fore'

In [783]: re.findall(r'\bfor\b', s)
Out[783]: ['for']
从:

\b是当前位置位于单词边界的断言


是否只想检查字符串是否包含单词或其一部分? 蟒蛇式的方法是:

In [15]: s = 'foreign, for fore'

In [16]: 'for' in s
Out[16]: True

是否只想检查字符串是否包含单词或其一部分? 蟒蛇式的方法是:

In [15]: s = 'foreign, for fore'

In [16]: 'for' in s
Out[16]: True

你想得到一个布尔值吗?那么,bool(re.findall(r'for',str))呢?(顺便说一下,
if
语句会隐式地实现这一点,因此
if re.findall(r'for',str):
是可以的)


如果不需要使用regexp,也可以在str中使用:
'for'(它“返回”一个布尔值)。

要获取布尔值吗?那么,bool(re.findall(r'for',str))呢?(顺便说一下,
if
语句会隐式地实现这一点,因此
if re.findall(r'for',str):
是可以的)


如果不需要使用regexp,也可以在str
中使用:
'for'(它“返回”一个布尔值)。

如果坚持使用
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
当然,试图用自然语言询问python是行不通的:

>>> "for" in "foreign"
True
>>> is "for" in "foreign" ?
  File "<stdin>", line 1
    is "for" in "foreign" ?
     ^
SyntaxError: invalid syntax
>“foreign”中的“for”
真的
>>>“fore”在“foreign”中是什么意思?
文件“”,第1行
“fore”在“foreign”中是什么意思?
^
SyntaxError:无效语法

如果坚持使用
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
当然,试图用自然语言询问python是行不通的:

>>> "for" in "foreign"
True
>>> is "for" in "foreign" ?
  File "<stdin>", line 1
    is "for" in "foreign" ?
     ^
SyntaxError: invalid syntax
>“foreign”中的“for”
真的
>>>“fore”在“foreign”中是什么意思?
文件“”,第1行
“fore”在“foreign”中是什么意思?
^
SyntaxError:无效语法

您是想找出
的单词
是否在较大的文本中,还是整个字符串等于
?如果是后者,为什么不使用
str=='for'
呢?您是否在尝试查找
for
的单词是否在较大的文本中,或者整个字符串是否等于
for
?如果是后者,为什么不使用
str=='for'
呢?但他说那不是他要找的输出。@Joseph那么你到底要找什么?我需要扫描字符串是否是关键字'for'。但他说那不是他要找的输出。@Joseph那么你到底要找什么?我需要扫描字符串是否是关键字“for”。这是他不清楚的事情。他想确保整个词作为一个词包含在句子中还是不包含在句子中。这是他不清楚的事情。他想确保整个词作为一个词包含在句子中还是不包含在句子中。