如何在字符串表示法中使用带有 python 正则表达式的标志?
How to use flags with python's regular expressions in string notation?
我需要将 PLY 用作解析器,而 PLY 会强制您在标记定义内的字符串 ntoation 中编写正则表达式。例如(来自docs):
# A regular expression rule with some action code
def t_NUMBER(t):
r'\d+'
t.value = int(t.value)
return t
# Define a rule so we can track line numbers
def t_newline(t):
r'\n+'
t.lexer.lineno += len(t.value)
我想知道如何使用这种表示法编写更复杂的正则表达式,特别是如何使用 RE 的 IGNORECASE 标志。
要启用忽略大小写标志,您可以在正则表达式的开头使用(?i)
。例如:
def t_id(t):
r'(?i)[a-z_][a-z0-9_]+'
我需要将 PLY 用作解析器,而 PLY 会强制您在标记定义内的字符串 ntoation 中编写正则表达式。例如(来自docs):
# A regular expression rule with some action code
def t_NUMBER(t):
r'\d+'
t.value = int(t.value)
return t
# Define a rule so we can track line numbers
def t_newline(t):
r'\n+'
t.lexer.lineno += len(t.value)
我想知道如何使用这种表示法编写更复杂的正则表达式,特别是如何使用 RE 的 IGNORECASE 标志。
要启用忽略大小写标志,您可以在正则表达式的开头使用(?i)
。例如:
def t_id(t):
r'(?i)[a-z_][a-z0-9_]+'