![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
正则表达式
文章平均质量分 73
weixin_46722612
这个作者很懒,什么都没留下…
展开
-
加密与安全——编码算法
要学习编码算法,我们先来看一看什么是编码。ASCII码就是一种编码,字母A的编码是十六进制的0x41,字母B是0x42,以此类推:因为ASCII编码最多只能有127个字符,要想对更多的文字进行编码,就需要用Unicode。而中文的中使用Unicode编码就是0x4e2d,使用UTF-8则需要3个字节编码:因此,最简单的编码是直接给每个字符指定一个若干字节表示的整数,复杂一点的编码就需要根据一个已有的编码推算出来。比如UTF-8编码,它是一种不定长编码,但可以从给定字符的Unicode编码推算出来原创 2021-03-15 20:54:12 · 163 阅读 · 0 评论 -
正则表达式——搜索和替换
分割字符串使用正则表达式分割字符串可以实现更加灵活的功能。String.split()方法传入的正是正则表达式。我们来看下面的代码:"a b c".split("\\s"); // { "a", "b", "c" }"a b c".split("\\s"); // { "a", "b", "", "c" }"a, b ;; c".split("[\\,\\;\\s]+"); // { "a", "b", "c" }如果我们想让用户输入一组标签,然后把标签提取出来,因为用户的输入往往是不规范的,原创 2021-03-15 19:32:47 · 462 阅读 · 0 评论 -
正则表达式——非贪婪匹配
在介绍非贪婪匹配前,我们先看一个简单的问题:给定一个字符串表示的数字,判断该数字末尾0的个数。例如:“123000”:3个0“10100”:2个0“1001”:0个0可以很容易地写出该正则表达式:(\d+)(0*),Java代码如下:import java.util.regex.*;public class Main { public static void main(String[] args) { Pattern pattern = Pattern.compi原创 2021-03-15 17:03:03 · 5215 阅读 · 1 评论 -
正则表达式——分组匹配
我们前面讲到的(…)可以用来把一个子规则括起来,这样写learn\s(java|php|go)就可以更方便地匹配长字符串了。实际上(…)还有一个重要作用,就是分组匹配。我们来看一下如何用正则匹配区号-电话号码这个规则。利用前面讲到的匹配规则,写出来很容易:\d{3,4}\-\d{6,8}虽然这个正则匹配规则很简单,但是往往匹配成功后,下一步是提取区号和电话号码,分别存入数据库。于是问题来了:如何提取匹配的子串?...原创 2021-03-15 16:52:50 · 1079 阅读 · 0 评论 -
正则表达式——复杂匹配规则
匹配开头和结尾用正则表达式进行多行匹配时,我们用^表示开头,KaTeX parse error: Undefined control sequence: \d at position 11: 表示结尾。例如,^A\̲d̲{3},可以匹配"A001"、“A380”。匹配指定范围如果我们规定一个7~8位数字的电话号码不能以0开头,应该怎么写匹配规则呢?\d{7,8}是不行的,因为第一个\d可以匹配到0。使用[…]可以匹配范围内的字符,例如,[123456789]可以匹配1~9,这样就可以写出上述电话号码原创 2021-03-15 15:09:03 · 308 阅读 · 0 评论 -
正则表达式——匹配规则
正则表达式的匹配规则是从左到右按规则匹配。我们首先来看如何使用正则表达式来做精确匹配。对于正则表达式abc来说,它只能精确地匹配字符串"abc",不能匹配"ab",“Abc”,"abcd"等其他任何字符串。如果正则表达式有特殊字符,那就需要用\转义。例如,正则表达式a&c,其中&是用来匹配特殊字符&的,它能精确匹配字符串"a&c",但不能匹配"ac"、“a-c”、"a&&c"等。要注意正则表达式在Java代码中也是一个字符串,所以,对于正则表达式a&am原创 2021-03-15 12:49:35 · 4973 阅读 · 0 评论