search_query.wos.parser

Web-of-Science query parser.

Classes

WOSListParser(query_list[, field_general])

Parser for Web-of-Science (list format) queries.

WOSParser(query_str, *[, field_general, ...])

Parser for Web-of-Science queries.

class search_query.wos.parser.WOSListParser(query_list: str, field_general: str = '')

Bases: QueryListParser

Parser for Web-of-Science (list format) queries.

parse() Query

Parse the list of queries.

class search_query.wos.parser.WOSParser(query_str: str, *, field_general: str = '', offset: dict | None = None, original_str: str | None = None, silent: bool = False)

Bases: QueryStringParser

Parser for Web-of-Science queries.

FIELD_REGEX = re.compile('\\b\\w{2}=|\\b\\w{3}=')
LOGIC_OPERATOR_REGEX = re.compile('\\b(AND|OR|NOT)\\b', re.IGNORECASE)
OPERATOR_REGEX: re.Pattern = re.compile('\\b(AND|OR|NOT)\\b|\\b(NEAR/\\d{1,2}|NEAR)\\b')
PARENTHESIS_REGEX = re.compile('[\\(\\)]')
PROXIMITY_OPERATOR_REGEX = re.compile('\\b(NEAR/\\d{1,2}|NEAR)\\b', re.IGNORECASE)
TERM_REGEX = re.compile('\\*?[\\w\\-/\\.\\!\\*,&\\\\]+(?:[\\*\\$\\?][\\w\\-/\\.\\!\\*,&\\\\]*)*|"[^"]+"')
combine_subsequent_terms() None

Combine subsequent terms in the list of tokens.

fieldS_REGEX = re.compile('\\b(?!and\\b)[a-zA-Z]+(?:\\s(?!and\\b)[a-zA-Z]+)*')
parse() Query

Parse a query string.

parse_query_tree(tokens: list[Token]) Query

Top-down predictive parser for query tree.

pattern = re.compile('\\b\\w{2}=|\\b\\w{3}=|\\b(AND|OR|NOT)\\b|\\b(NEAR/\\d{1,2}|NEAR)\\b|\\*?[\\w\\-/\\.\\!\\*,&\\\\]+(?:[\\*\\$\\?][\\w\\-/\\.\\!\\*,&\\\\]*)*|"[^"]+"|[\\(\\)]')
tokenize() None

Tokenize the query_str.