Python 3 - 正则表达式或其他检查变量中的单词的方法?

时间:2016-07-28 17:08:55

标签: python

这是我的代码:

for post in socket("news", start=currentTime):
    if post["body"] == 'xyz' and post["author"] == 'admin' and post["url"] == 'latestnews':
        try: 
 print ("Found it!")
(...)

它正常工作,但前提是post["body"] “xyz”。如果post["body"] “Bla bla bla xyz”那么它就无效了。如果我希望我的脚本显示“找到它!”,即使post["body"]包含

,我该怎么办?
  

“Lorem ipsum dolor sit amet,eum ne maiorum volutpat,ei has erat   eruditi,autem fierent evertitur at has xyz Case simul persius id   mei,soleat laoreet assentior ea mel。 Meis assum contentiones in cum,   est ornatus salutandi id。 Sanctus labores ius ne。“

抱歉,我是Python的新手: - /

2 个答案:

答案 0 :(得分:0)

您所要做的就是改变您的订单。您可以使用运算符'in'来检查字符串是否包含另一个字符串。

{
  "rows": [
    {
      "date_str": "2016-07-01",
      "sleep_7_or_more_hours": true,
      "activity_minutes": "0",
      "water_5_or_more_cups": true,
      "fruit_veg_4_or_more_servings": true,
      "physical_activity_description": "walking"
    }
    {
      "date_str": "2016-07-02",
      "sleep_7_or_more_hours": true,
      "activity_minutes": "30",
      "water_5_or_more_cups": true,
      "fruit_veg_4_or_more_servings": true,
      "physical_activity_description": "walking"
    }  
    ...etc  
  ]
}

答案 1 :(得分:-2)

您可以在运算符或str.find中使用:https://docs.python.org/3/reference/expressions.html#in https://docs.python.org/2/library/stdtypes.html?highlight=index#str.find

基本上,你会这样做

if(xyz in post["body"] ...) { 
// OR 
if(post["body"].find('xyz') != -1 and ... ) {

in运算符可能是最快的方式。

.find将返回一个介于0和字符串长度-1之间的数字(告诉你字符串的位置。但是,如果它找不到字符串,则返回-1。所以如果它返回-1,那么它不存在,所以-1以外的任何东西都意味着它。