【问题标题】:how to take random words after a sentence in random index [duplicate]如何在随机索引中的句子后取随机词[重复]
【发布时间】:2017-08-30 02:13:04
【问题描述】:

这是字符串变量

question = "i need to know about something..."

如果有时问题变量更改为以下内容,我如何获得“我需要知道”之后的单词:

question = " i need to know about something..." 

question = "hmmm.... i need to know about something"

我的意思是,无论索引在哪里,但我需要知道这句话后面的随机词是什么 -> “我需要知道”,在这种情况下,结果将是“某事......”

【问题讨论】:

    标签: python regex string word


    【解决方案1】:

    一个快速而肮脏的解决方案是使用str.strip()。它既快速又脏,因为它不区分大小写,并且仅在存在确切字符串时才有效

    In [22]: "i need to know about something...".split("i need to know about")
    Out[22]: ['', ' something...']
    
    In [23]: "hmmm.... i need to know about something".split("i need to know about")
    Out[23]: ['hmmm.... ', ' something']
    
    In [24]: "hmmm.... i need to know about  something".split("i need to know about")
    Out[24]: ['hmmm.... ', '  something']
    
    In [25]: "hmmm.... i need to know  about something".split("i need to know about")
    Out[25]: ['hmmm.... i need to know  about something']
    

    最后一种情况不起作用,因为字符串不完全匹配(注意 knowabout 之间的 2 个空格。

    其他一些答案所暗示的正则表达式会更全面

    【讨论】:

      【解决方案2】:

      如果它是一个字符串,那么你可以只获取你要查找的字符串的索引,然后获取所有内容,如下所示:

      start = question.index('i need to know about')
      finish = start + len('i need to know about')
      print(question[finish:]) # something...
      

      【讨论】:

        【解决方案3】:

        你可以使用正则表达式。

        import re
        s = "hmmm.... i need to know about something"
        regexp = re.compile("i need to know about(.*)$")
        print(regexp.search(s).group(1))
        

        输出:

         something
        

        如果要清理输出,可以随时.strip()

        print(regexp.search(s).group(1).strip())
        

        输出:

        something
        

        【讨论】:

          【解决方案4】:

          您可以使用正则表达式提取“我需要知道”之后的内容。

          import re
          
          pattern = ".*?i need to know about (.*)"
          
          content = re.search(pattern, sentence).group(1)
          

          【讨论】:

            【解决方案5】:

            你可以试试这个:

            question = "hmmm.... i need to know about something"
            
            new_data = question[question.index("i need to know about")+len("i need to know about"):]
            

            输出:

            something
            

            使用正则表达式:

            import re
            
            data = re.findall("(?<=i need to know about)\s[a-zA-Z\s]+", question)
            
            print(data)
            

            输出:

            [' something']
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2023-04-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-10-29
              相关资源
              最近更新 更多