Java总结-正则表达式
正则表达式:专门用于操作字符串的规则。将一些操作代码通过一些符号体现。好处:1,方便了程序的编写。2,可以用于对字符串的复杂操作。弊端:阅读性较差。常用规则:[]:限定某一位字符内容范围。比如:[abc]:该位字符只能出现a或者b或者c。[a-z]:改为字符只要是小写字母中的一个即可。{}:限定前一个字符或者正则规则内容出现的次数。比如:{3}:出现3次。{3,}:至少出现3次。{3,7}:出现3到7次。数量规则:?:出现一次或者0次。* :出现了0次或者多次。+ :出现1次或者多次。字符规则:\d: [0-9],数字。\D: [^0-9],非数字。\w: [a-zA-Z0-9_]\b: 单词边界。\s: 空格,tab,\r \n.组规则:可以将正则表达式的结果通过()进行封装,以便于该规则内容被重用技巧:当出现了嵌套组的时候,通过左括号来进行编号的判断。该编号从1开始。如果使用已定好的组呢?通过\n形式,反向引用组。()\\1+。特殊:$ : 代表是行结束。^ : 行开始。. : 代表任意字符。--------对字符串操作的常见功能。1,匹配。String matches(regex);其实最终使用的是Matcher匹配器对象。需求:判断QQ号码。5~15 0不可以开头。qq.matches("[1-9]\\d{4,14}");2,切割:String split(regex);需求:如果想通过 . 的形式起个字符串。split("\\.");3,替换:String replaceAll(regex,str);在regex表达式中使用了组。那么可以在str中的通过 $编号 的形式获取regex中的组。需求:如果想将符合规则的内容替换成一个$符号。replaceAll(regex,"\\$");需求:替换叠词,用叠词中的一个替换全部。s.replaceAll("(.)\\1+","$1");4,查找:涉及到java.util.regex包中两个对象。Pattern ,Matcher。1,将正则规则封装成Pattern对象。Pattern p = Pattern.compile(regex);2,将规则对象和要作用的字符串相关联,获取匹配器对象。Matcher m = p.matcher(str);3,通过匹配器对象find()将规则去操作字符串,如果找到返回true。 在通过group()方法获取找到符合规则的内容。练习:1,获取一段英文有三个字母组成的单词。2,操作一组ip地址,按ip地址顺序排序。3,Email规则。/*[a-zA-Z0-9_]*/ "\\w{6,12}@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+"4,网页爬虫。遍历网页中的文本,将符合规则的信息获取。应用场景:注册表单的校验。