Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6999245
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T20:31:00+00:00 2026-05-27T20:31:00+00:00

I have a function that searches a string in a list of lists then

  • 0

I have a function that searches a string in a list of lists then returns a list containing the matching lists:

def foo(myList,keyword,first=True):
    if first: #Search only first element or each sublist
        return [x for x in myList if keyword in x]
    else: #Search first and second elements of each sublist
        return [x for x in myList if keyword in x or keyword in x[1]]

Now I want to extend it to handle advanced searching with queries like:

matchthis -butnothis -"and not this"

this|orthis|"or this"

brand new*laptop  # this is a wildcard, matches like: brand new dell laptop

"exact phrase"

Are there any python modules (preferably builtin) that I can use in my function to handle these queries?

PS: I’m aware of Swoosh but it’s not the right fit for me at the moment. Also, I’m currently using App Engine.

What I’m trying to do basically is full-text search in memory, since app engine doens’t support full-text search yet. I query the datastore, put the entities into lists and loop through those lists to find query matches.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T20:31:00+00:00Added an answer on May 27, 2026 at 8:31 pm

    I would try constructing a regex for each portion of the search query. First you could break the query into the portions using shlex.split(), and then create each regex individually. Here is my crack at it:

    import shlex, re
    
    def foo(query):
        pieces = shlex.split(query)
        include, exclude = [], []
        for piece in pieces:
            if piece.startswith('-'):
                exclude.append(re.compile(piece[1:]))
            else:
                include.append(re.compile(piece))
        def validator(s):
            return (all(r.search(s) for r in include) and
                    not any(r.search(s) for r in exclude))
        return validator
    

    This will return a function that you can use to validate against the query, for example:

    >>> test = foo('matchthis -butnothis -"and not this"')
    >>> test("we should matchthis...")
    True
    >>> test("some stuff matchthis blah and not this...")
    False
    

    You should be able to add in some wildcard handling by replacing * in the query with .* in the regex.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a function that searches for a string inside a text file. I
I have a Flex application that calls a function which searches a large document
I have a function that gets x(a value) and xs(a list) and removes all
I have a find function that locates a string in a JTable with quite
So I have function that formats a date to coerce to given enum DateType{CURRENT,
In my Java code I have function that gets file from the client in
I have a function that gives me the following warning: [DCC Warning] filename.pas(6939): W1035
I have a function that takes, amongst others, a parameter declared as int privateCount
I have a function that looks like this class NSNode { function insertAfter(NSNode $node)
I have a function that I use called sqlf(), it emulates prepared statements. For

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.