正则表达式修饰符

正则表达式修饰符

打开多行模式:(?m)
打开单行模式:(?s)
其他选项开关类似用(?modifier)表示,如(?i),忽略大小写。(?modifier)是标准写法,不受语言限制,当然也可以使用语言提供的api设置。

模式修饰符即可以位于正则表达式的开始位置,也可以位于其他地方,指示模式从此处开始生效。
同样的,还有失效修饰符,(?-modifier),指示模式生效到此为止。

正则表达式本身不支持并集、交集、差操作,但多数语言会添加支持,如Java、Python。
如:[[a-z]&&[^aeiou]],求[a-z]与[^aeiou]的差

转载于:https://www.cnblogs.com/laud/p/regex_modifiers.html

### Python 正则表达式修饰符Python 中,正则表达式修饰符可以通过 `re` 模块中的标志参数来设置。这些修饰符能够改变模式的行为,使得匹配更加灵活和强大。 #### 常见修饰符及其作用 - **忽略大小写 (`re.IGNORECASE` 或 `re.I`)** 这个修饰符可以让正则表达式不区分大小写字母进行匹配。例如,在查找单词时不考虑字母的大小写差异[^1]。 ```python import re pattern = r'hello' text = 'Hello world!' match = re.search(pattern, text, re.IGNORECASE) print(match.group()) # 输出: Hello ``` - **多行模式 (`re.MULTILINE` 或 `re.M`)** 多行模式允许 `^` 和 `$` 匹配每一行的开始和结束位置,而不仅仅是指整个字符串的起始和终止位置[^2]。 ```python multiline_text = """First line. Second line.""" matches = re.findall(r'^\w+', multiline_text, re.MULTILINE) print(matches) # 输出: ['First', 'Second'] ``` - **单行模式 (`re.DOTALL` 或 `re.S`)** 单行模式下,`.` 特殊字符会匹配任何字符,包括换行符。默认情况下,`.` 不匹配换行符[^3]。 ```python dotall_text = "This is a\nmulti-line string." single_line_match = re.search(r'This.*string$', dotall_text) multi_line_match = re.search(r'This.*string$', dotall_text, re.DOTALL) print(bool(single_line_match)) # 输出: False print(multi_line_match.group()) # 输出: This is a # multi-line string. ``` - **无空白模式 (`re.VERBOSE` 或 `re.X`)** 使用此选项可以在定义复杂模式时加入注释并忽略多余的空白字符,使代码更具可读性[^4]。 ```python verbose_pattern = r""" \d{3} # area code [-.\s]? # separator (optional) \d{3} # first three digits [-.\s]? # separator (optional) \d{4} # last four digits """ phone_number = "123-456-7890" result = re.match(verbose_pattern.strip(), phone_number, re.VERBOSE) print(result.group() if result else None) # 输出: 123-456-7890 ``` 以上就是几种常用的 Python 正则表达式修饰符以及它们的具体应用实例。通过合理运用这些修饰符,可以根据实际需求调整正则表达式的匹配行为,从而实现更为精确高效的文本处理操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值