又重新看了下perl正则表达式,又有了新的感触他实在是太强大了,
在这向大家共享一些小技巧
1 拓展的正则表达式
判断是否是数字,
(?=/d|/./d)是一个扩展式(?KEY)是用来发现潜在可能情况
(?=)向前检测如果匹配上返回一个真是值 ;(?!)与其相反;向后方向(?<=)(?<!)。
(?:)只群集不扑获小括号
(?ismx)给小括号添加修饰符号
(?-ismx)关闭这些修饰府
这样可以使用一个正则式判断是否为带有科学技术法浮点数。
2 在perl中可以把一个模式分成好多子模式(集群),并且保存子模式(扑获),$1,$2
不过在模式中则需要另一种方法/1,/2
使用/g 会返回一个列表
对嵌套的集群外层模式优先与内层括号,其他情况按从左到右的顺序放到变量$1,$2中
3 /|cat|/ 候选项可以为空
在这向大家共享一些小技巧
1 拓展的正则表达式
- if($string =~ /^([+-]?)(?=/d|/./d)/d*(/./d*)?([Ee]([+-]?/d+))?$/);
(?=)向前检测如果匹配上返回一个真是值 ;(?!)与其相反;向后方向(?<=)(?<!)。
(?:)只群集不扑获小括号
(?ismx)给小括号添加修饰符号
(?-ismx)关闭这些修饰府
这样可以使用一个正则式判断是否为带有科学技术法浮点数。
2 在perl中可以把一个模式分成好多子模式(集群),并且保存子模式(扑获),$1,$2
不过在模式中则需要另一种方法/1,/2
使用/g 会返回一个列表
对嵌套的集群外层模式优先与内层括号,其他情况按从左到右的顺序放到变量$1,$2中
3 /|cat|/ 候选项可以为空