正则的[]与()

对正则的模糊不清, 造就了今天的这篇文章

可以配合这个正则测试工具 http://tool.oschina.net/regex 阅读本文

首先是 [] 这个, 这个不管里边写多少, 写的是什么, 终究只能匹配一个字符, 而不是多个.

比如 [15|13] 这个匹配出来的是 1或5或|或3 (注: 也就是说任何正则里的特殊字符, 除^在最前外, 在[]里, 都当作是待匹配的一个字符来看待), 而不是15或13, 如果需要匹配的结果是后者, 可以使用()

即(15|13),  关于(), 他匹配出的是一个串中的子字符串

比如匹配身份证的正则  ^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$ 

大量使用了(), 说明了在匹配的结果中, 前6位, 然后4位, 2位, 2位 3位, 1位都可以去捕获

比如 410181 2016 12 20 121 X

当然了, 目前还没有这个身份证号码了, 中间我以空格形式格开了, 每个部分, 都可以在匹配结果中去捕获到, 这样做, 个人理解可以使获取某些值, 比如说, 出生在哪年, 哪月 更容易得到, 另外, 也方便进一步的验证了.

关于捕获, 以及后向(一说反向, 一说逆向), 可以参考这里的说明 http://www.regexlab.com/zh/regref.htm 使用浏览器搜索 反向引用

关于  ()  可以参考我的 这篇日志

转载于:https://www.cnblogs.com/debmzhang/p/3953256.html

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
### 扩展正则表达式基本正则表达式的区别 #### 特征对比 基本正则表达式(BRE)和扩展正则表达式(ERE)的主要差异在于语法结构及其所支持的功能特性。对于需要两个或多个反斜杠转义的情况,建议采用扩展正则表达式以简化书写并提高可读性[^1]。 #### 语法上的不同 - **分组** 在基本正则表达式中,为了创建一个分组,必须使用`\(` 和 `\)` 来包围想要组合在一起的部分;而在扩展正则表达式里,则可以直接利用`(` 和 `)` 实现相同功能而无需额外的转义字符[^4]。 - **重复次数** 对于指定某个模式出现的具体次数范围,在基本版本下需借助特殊的记号形式如`\{m,n\}` 表达至少 m 次至多 n 次的意思;相比之下,扩展版允许更加直观地写作 `{m,n}` 形式[^3]。 - **其他特殊符号** 许多功能性的元字符在两种类型的正则中有不同的表现方式: | 功能 | 基本正则表达式 (BRE) | 扩展正则表达式 (ERE) | | --- | --- | --- | | 零个或多个任意字符 | `.*` | `.*` | | 可选项 | `\?` | `?` | | 一次或多次 | `\+` | `+` | 表中的例子展示了部分常见的操作符如何因类型变化而改变写法[^2]。 #### 工具兼容性 值得注意的是,并不是所有的工具都同时支持这两种风格的正则表达式。例如,默认情况下 `grep` 使用的是基本正则表达式,如果希望启用扩展正则表达式的支持,则可以通过 `-E` 参数实现这一转换。 ```bash # 使用基本正则表达式查找包含"abc"字符串的行 grep '\<abc\>' file.txt # 同样的任务通过扩展正则表达式完成 grep -E '(^|[[:space:]])abc([[:space:]]|$)' file.txt ``` 上述代码片段说明了当处理同样的需求时,两者之间的具体应用差别所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值