當前位置: 首頁>>代碼示例>>Python>>正文


Python pyparsing.Regex方法代碼示例

本文整理匯總了Python中pyparsing.Regex方法的典型用法代碼示例。如果您正苦於以下問題:Python pyparsing.Regex方法的具體用法?Python pyparsing.Regex怎麽用?Python pyparsing.Regex使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在pyparsing的用法示例。


在下文中一共展示了pyparsing.Regex方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: _wrap_as_optional_numeric

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def _wrap_as_optional_numeric(self, field, name, columns):
        # Regular expression accepting as many whitespaces as columns
        field_empty = pp.Regex('[0]{' + str(columns) + '}')

        resultsName = field.resultsName

        field_empty.setName(name)

        # Whitespaces are not removed
        field_empty.leaveWhitespace()

        # None is returned by this rule
        field_empty.setParseAction(pp.replaceWith(None))

        field_empty = field_empty.setResultsName(field.resultsName)

        field = field | field_empty

        field.setName(name)
        field = field.setResultsName(resultsName)

        field.leaveWhitespace()

        return field 
開發者ID:weso,項目名稱:CWR-DataApi,代碼行數:26,代碼來源:decorator.py

示例2: flag

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def flag(name=None):
    """
    Creates the grammar for a Flag (F) field, accepting only 'Y', 'N' or 'U'.

    :param name: name for the field
    :return: grammar for the flag field
    """

    if name is None:
        name = 'Flag Field'

    # Basic field
    field = pp.Regex('[YNU]')

    # Name
    field.setName(name)

    field.leaveWhitespace()

    return field 
開發者ID:weso,項目名稱:CWR-DataApi,代碼行數:22,代碼來源:basic.py

示例3: blank

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def blank(columns=1, name=None):
    """
    Creates the grammar for a blank field.

    These are for constant empty strings which should be ignored, as they are
    used just as fillers.

    :param columns: number of columns, which is the required number of
    whitespaces
    :param name: name for the field
    :return: grammar for the blank field
    """
    if name is None:
        name = 'Blank Field'

    field = pp.Regex('[ ]{' + str(columns) + '}')
    field.leaveWhitespace()
    field.suppress()

    field.setName(name)

    return field 
開發者ID:weso,項目名稱:CWR-DataApi,代碼行數:24,代碼來源:basic.py

示例4: visan

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def visan(name=None):
    """
    Creates the grammar for a V-ISAN code.

    This is a variation on the ISAN (International Standard Audiovisual Number)

    :param name: name for the field
    :return: grammar for an ISRC field
    """

    if name is None:
        name = 'V-ISAN Field'

    field = pp.Regex('[0-9]{25}')

    field.setName(name)

    return field.setResultsName('visan') 
開發者ID:weso,項目名稱:CWR-DataApi,代碼行數:20,代碼來源:special.py

示例5: _parse

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def _parse(mystr):

    LBRACE, RBRACE, EQUAL = map(pp.Suppress, "{}=")
    field = pp.Word(pp.printables + ' ', excludeChars='[]=')
    field.addParseAction(pp.tokenMap(str.rstrip))
    string = pp.dblQuotedString().setParseAction(pp.removeQuotes)
    number = pp.pyparsing_common.number()
    date_expr = pp.Regex(r'\d\d\d\d-\d\d-\d\d')
    time_expr = pp.Regex(r'\d\d:\d\d:\d\d\.\d\d\d')
    nan = pp.Keyword('nan')
    scalar_value = (string | date_expr | time_expr | number | nan)

    list_marker = pp.Suppress("[]")
    value_list = pp.Forward()
    jobject = pp.Forward()

    memberDef1 = pp.Group(field + EQUAL + scalar_value)
    memberDef2 = pp.Group(field + EQUAL + jobject)
    memberDef3 = pp.Group(field + list_marker + EQUAL + LBRACE + value_list +
                          RBRACE)
    memberDef = memberDef1 | memberDef2 | memberDef3

    value_list <<= (pp.delimitedList(scalar_value, ",") |
                    pp.ZeroOrMore(pp.Group(pp.Dict(memberDef2))))
    value_list.setParseAction(lambda t: [pp.ParseResults(t[:])])

    members = pp.OneOrMore(memberDef)
    jobject <<= pp.Dict(LBRACE + pp.ZeroOrMore(memberDef) + RBRACE)
    # force empty jobject to be a dict
    jobject.setParseAction(lambda t: t or {})

    parser = members
    parser = pp.OneOrMore(pp.Group(pp.Dict(memberDef)))

    return parser.parseString(mystr) 
開發者ID:matthewgilbert,項目名稱:pdblp,代碼行數:37,代碼來源:parser.py

示例6: _cast_transformer

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def _cast_transformer(self):
        """Removes obvious casts."""
        return pyparsing.Combine(
            pyparsing.Regex(r"\([^()]*\)").suppress()
            + (pyparsing.Word(pyparsing.alphanums + "_")
               | pyparsing.Literal("(")),
            adjacent=False) 
開發者ID:google,項目名稱:rekall,代碼行數:9,代碼來源:expression_parser.py

示例7: __init__

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def __init__(self):
        """
        Create a parser that parse arithmetic expressions. They can
        contains variable identifiers or raw numbers. The meaning
        for the identifiers is left to the
        """
        number = p.Regex(r'\d+(\.\d*)?([eE]\d+)?')
        identifier = p.Word(p.alphas)
        terminal = identifier | number
        self._expr = p.infixNotation(terminal, [
            (p.oneOf('* /'), 2, p.opAssoc.LEFT),
            (p.oneOf('+ -'), 2, p.opAssoc.LEFT)
        ]) + p.stringEnd() 
開發者ID:openstack,項目名稱:monasca-analytics,代碼行數:15,代碼來源:expression.py

示例8: GetParams

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def GetParams(s):
  """Extracts args and kwargs from string."""
  # modified from https://stackoverflow.com/questions/38799223/parse-string-to-identify-kwargs-and-args  # pylint: disable=line-too-long

  _lparen = Suppress("(")  # pylint: disable=invalid-name
  _rparen = Suppress(")")  # pylint: disable=invalid-name
  _eq = Suppress("=")  # pylint: disable=invalid-name

  data = (_lparen + Optional(
      delimitedList(
          Group(Regex(r"[^=,)\s]+") + Optional(_eq + Regex(u"[^,)]*")))
          )
      ) + _rparen)

  items = data.parseString(s).asList()

  # need to make sure that kwargs only happen after args are processed
  args = [Num(i[0]) for i in items if len(i) == 1]
  kwargs = {i[0]: Num(i[1]) for i in items if len(i) == 2}

  # check for syntax error
  for i in range(1, len(items)):
    if (len(items[i]) == 1) and (len(items[i-1]) == 2):
      raise SyntaxError

  return args, kwargs 
開發者ID:google,項目名稱:qkeras,代碼行數:28,代碼來源:safe_eval.py

示例9: word_token_regex

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def word_token_regex(disallowed_delimiter):
    return pypar.Regex(r"[^\s\n" + re.escape(disallowed_delimiter) + r"]+") 
開發者ID:ecohealthalliance,項目名稱:EpiTator,代碼行數:4,代碼來源:structured_data_annotator.py

示例10: _wrap_as_optional

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def _wrap_as_optional(self, field, name, columns):
        """
        Adds a wrapper rule to the field to accept empty strings.

        This empty string should be of the same size as the columns parameter.
        One smaller or bigger will be rejected.

        This wrapper will return None if the field is empty.

        :param field: the field to wrap
        :param name: name of the field
        :param columns: number of columns it takes
        :return: the field with an additional rule to allow empty strings
        """
        # Regular expression accepting as many whitespaces as columns
        field_empty = pp.Regex('[ ]{' + str(columns) + '}')

        resultsName = field.resultsName

        field_empty.setName(name)

        # Whitespaces are not removed
        field_empty.leaveWhitespace()

        # None is returned by this rule
        field_empty.setParseAction(pp.replaceWith(None))

        field_empty = field_empty.setResultsName(resultsName)

        field = field | field_empty

        field.setName(name)
        field = field.setResultsName(resultsName)

        field.leaveWhitespace()

        return field 
開發者ID:weso,項目名稱:CWR-DataApi,代碼行數:39,代碼來源:decorator.py

示例11: char_code

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def char_code(columns, name=None):
    """
    Character set code field.

    :param name: name for the field
    :return: an instance of the Character set code field rules
    """
    if name is None:
        name = 'Char Code Field (' + str(columns) + ' columns)'

    if columns <= 0:
        raise BaseException()

    char_sets = None
    for char_set in _tables.get_data('character_set'):
        regex = '[ ]{' + str(15 - len(char_set)) + '}' + char_set
        if char_sets is None:
            char_sets = regex
        else:
            char_sets += '|' + regex

    # Accepted sets
    _character_sets = pp.Regex(char_sets)
    _unicode_1_16b = pp.Regex('U\+0[0-8,A-F]{3}[ ]{' + str(columns - 6) + '}')
    _unicode_2_21b = pp.Regex('U\+0[0-8,A-F]{4}[ ]{' + str(columns - 7) + '}')

    # Basic field
    char_code_field = (_character_sets | _unicode_1_16b | _unicode_2_21b)

    # Parse action
    char_code_field = char_code_field.setParseAction(lambda s: s[0].strip())

    # Name
    char_code_field.setName(name)

    return char_code_field 
開發者ID:weso,項目名稱:CWR-DataApi,代碼行數:38,代碼來源:table.py

示例12: numeric

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def numeric(columns, name=None):
    """
    Creates the grammar for a Numeric (N) field, accepting only the specified
    number of characters.

    This version only allows integers.

    :param columns: number of columns for this field
    :param name: name for the field
    :return: grammar for the integer numeric field
    """

    if name is None:
        name = 'Numeric Field'

    if columns <= 0:
        # Can't be empty or have negative size
        raise BaseException()

    # Only numbers are accepted
    field = pp.Regex('[0-9]{' + str(columns) + '}')

    # Parse action
    field.setParseAction(_to_int)
    field.leaveWhitespace()

    # Name
    field.setName(name)

    return field 
開發者ID:weso,項目名稱:CWR-DataApi,代碼行數:32,代碼來源:basic.py

示例13: date

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def date(name=None):
    """
    Creates the grammar for a Date (D) field, accepting only numbers in a
    certain pattern.

    :param name: name for the field
    :return: grammar for the date field
    """

    if name is None:
        name = 'Date Field'

    # Basic field
    # This regex allows values from 00000101 to 99991231
    field = pp.Regex('[0-9][0-9][0-9][0-9](0[1-9]|1[0-2])'
                     '(0[1-9]|[1-2][0-9]|3[0-1])')

    # Parse action
    field.setParseAction(lambda d: datetime.datetime.strptime(d[0], '%Y%m%d')
                         .date())

    # Name
    field.setName(name)

    # White spaces are not removed
    field.leaveWhitespace()

    return field 
開發者ID:weso,項目名稱:CWR-DataApi,代碼行數:30,代碼來源:basic.py

示例14: time

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def time(name=None):
    """
    Creates the grammar for a Time or Duration (T) field, accepting only
    numbers in a certain pattern.

    :param name: name for the field
    :return: grammar for the date field
    """

    if name is None:
        name = 'Time Field'

    # Basic field
    # This regex allows values from 000000 to 235959
    field = pp.Regex('(0[0-9]|1[0-9]|2[0-3])[0-5][0-9][0-5][0-9]')

    # Parse action
    field.setParseAction(lambda t: datetime.datetime.strptime(t[0], '%H%M%S')
                         .time())

    # White spaces are not removed
    field.leaveWhitespace()

    # Name
    field.setName(name)

    return field 
開發者ID:weso,項目名稱:CWR-DataApi,代碼行數:29,代碼來源:basic.py

示例15: ipi_base_number

# 需要導入模塊: import pyparsing [as 別名]
# 或者: from pyparsing import Regex [as 別名]
def ipi_base_number(name=None):
    """
    IPI Base Number field.

    An IPI Base Number code written on a field follows the Pattern
    C-NNNNNNNNN-M. This being:
    - C: header, a character.
    - N: numeric value.
    - M: control digit.

    So, for example, an IPI Base Number code field can contain I-000000229-7.

    :param name: name for the field
    :return: a parser for the IPI Base Number field
    """

    if name is None:
        name = 'IPI Base Number Field'

    field = pp.Regex('I-[0-9]{9}-[0-9]')

    # Name
    field.setName(name)

    field_num = basic.numeric(13)
    field_num.setName(name)

    field = field | field_num

    # White spaces are not removed
    field.leaveWhitespace()

    return field.setResultsName('ipi_base_n') 
開發者ID:weso,項目名稱:CWR-DataApi,代碼行數:35,代碼來源:special.py


注:本文中的pyparsing.Regex方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。