perl正则表达式
use encoding 'utf8',STDOUT=>'gbk';
# 正则表达式
# . 匹配任一个字符
# * 匹配任意多个前面的字符
# ? 匹配0到1个
# .* 匹配0到多个
# .+ 匹配1到多个
# .? 匹配0到1个
# [abc] 匹配a或b或c
# [^123] 非123
# [0-9]+ 匹配1到多个数字
# \w 表示 [a-zA-Z0-9_]
# \W 表示[^a-zA-Z0-9_]
# \d 表示 [0-9]
# \D 表示非数字,[^0-9]
# /s 表示[\t\n\r\f]
# /S
# [\d\D] 匹配任意字符
# / / 用 / / 中的字符去匹配$_中的字符,可写成 m/ / m( ) m{ },eg: m{http://}
# / /is i表示不分大小写,s表示可以匹配任意字符,包括特殊字符
# / /x x表示中间可以有空格
# /\bman\b/ #b表示匹配单词的开头和结尾,表示匹配独立单词man
$_="ha ha youyou";
if (/ha/){ #匹配$_ 中的字符
print ("找到了");
}
#如果不是特殊变量$_,而是一般变量,如$bb,需要绑定操作符
$bb= ~ /ha/
# /(.)(...)\1\2\1/ # 表示 \1与第一个(.)匹配,\2与第二个(...)匹配
#/-?\d+\.?\d+/ 判断数字,0个或1个负号.....
# /(\w+)/ # ( ) 表示分组捕获,可用$1输出
# /(?:\w+)/ # ?:表示只分组,不被$1捕获
# /(?<name1>\d+)/ #给分组命名,名字为name1,
# print "$+{name1}"; #输出分组name1
# $1 #第一个分组 $& #所选分组,带符号 $' #所选分组后面的内容 $` #所选分组前面的内容
# $`$&$' #原始字符串
# s/a/b/; 正则替换,把a换成b;
# s/a/b/g; 正则替换,把所有的a换成b;
# split 拆分字符串
# split /:/, "ab:c:d"; #用冒号分隔字符串
# join连接字符串
# @a=(1,2,3,4);
# $x=join ":",@y;
# *? +? ?? 非贪婪模式,匹配就近的
# /mg 匹配多行、所有的