黑马程序员技术交流社区

标题: 正则表达式到底是什么啊? [打印本页]

作者: yanggz    时间: 2016-9-2 23:44
标题: 正则表达式到底是什么啊?
今天预习正则表达式的内容,表示完全懵了啊,求大神给我通俗易懂的解释下,感激不尽!!
作者: hjr490150385    时间: 2016-9-3 09:20
正则表达式是对字符串操作的逻辑公式,这么说你可能不太明白,正则可以匹配字符串,切割字符串,替换字符串,检索字符串,很多难度爆表的字符串操作都可以用正则来做,比如将"我我我我我爱爱爱爱爱学学学学编编编程"变成"我爱学编程"
作者: NewBeeCoder    时间: 2016-9-3 22:15
正则表达式:
    (1)就是符合一定规则的字符串
        (2)常见规则
                A:字符
                        x 字符 x。举例:"a"表示字符a
                        \\ 反斜线字符。
                        \n 新行(换行)符
                        \r 回车符
                       
                B:字符类
                        [abc] a、b 或 c(简单类)
                        [^abc] 任何字符,除了 a、b 或 c(否定)
                        [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
                        [0-9] 0到9的字符都包括
                       
                C:预定义字符类
                        . 任何字符。我的就是.字符本身,怎么表示呢? \.
                        \d 数字:[0-9]
                        \w 单词字符:[a-zA-Z_0-9]
                                在正则表达式里面组成单词的东西必须有这些东西组成

                D:边界匹配器
                        ^ 行的开头
                        $ 行的结尾
                        \b 单词边界
                                就是不是单词字符的地方。
                                举例:hello world?haha;xixi
                       
                E:Greedy 数量词
                        X? X,一次或一次也没有
                        X* X,零次或多次
                        X+ X,一次或多次
                        X{n} X,恰好 n 次
                        X{n,} X,至少 n 次
                        X{n,m} X,至少 n 次,但是不超过 m 次
        (3)常见功能:
                A:判断功能
                        String类的
                        public boolean matches(String regex) 进行字符串规则的匹配
                B:分割功能
                        String类的
                        public String[] split(String regex)  字符串按照某种规则进行切割
                C:替换功能
                        String类的
                        public String replaceAll(String regex,String replacement) 字符串按照某种规则替换小串

    (4)案例
                A:判断电话号码和邮箱
                B:按照不同的规则分割数据
                C:把论坛中的数字替换为*
作者: yanggz    时间: 2016-9-3 23:41
hjr490150385 发表于 2016-9-3 09:20
正则表达式是对字符串操作的逻辑公式,这么说你可能不太明白,正则可以匹配字符串,切割字符串,替换字符串,检 ...

先谢谢了,不过还是感觉抽象
作者: yanggz    时间: 2016-9-3 23:43
NewBeeCoder 发表于 2016-9-3 22:15
正则表达式:
    (1)就是符合一定规则的字符串
        (2)常见规则

谢谢   !thank you very much
作者: NewBeeCoder    时间: 2016-9-4 08:58
yanggz 发表于 2016-9-3 23:43
谢谢   !thank you very much

互相学习
作者: jianzhen    时间: 2016-9-4 09:25
是符合一定规则的字符串
        (2)常见规则
                A:字符
                        x 字符 x。举例:"a"表示字符a
                         \\ 反斜线字符。
                        \n 新行(换行)符
                        \r 回车符
                        
                 B:字符类
                        [abc] a、b 或 c(简单类)
                        [^abc] 任何字符,除了 a、b 或 c(否定)
                        [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
                        [0-9] 0到9的字符都包括
                        
                 C:预定义字符类
                        . 任何字符。我的就是.字符本身,怎么表示呢? \.
                         \d 数字:[0-9]
                         \w 单词字符:[a-zA-Z_0-9]
                                 在正则表达式里面组成单词的东西必须有这些东西组成

                D:边界匹配器
                        ^ 行的开头
                        $ 行的结尾
                        \b 单词边界
                                就是不是单词字符的地方。
                                举例:hello world?haha;xixi
                        
                 E:Greedy 数量词
                        X? X,一次或一次也没有
                        X* X,零次或多次
                        X+ X,一次或多次
                        X{n} X,恰好 n 次
                        X{n,} X,至少 n 次
                        X{n,m} X,至少 n 次,但是不超过 m 次


很有用,学习了
作者: gzgzgz159357    时间: 2016-9-4 09:27
正则表达式这里确实不大明白,感谢分享!!!!!
作者: DGNT00    时间: 2016-9-4 09:31
我自己的理解就是正则表达式就是一个规则,看看字符串符不符合这个规则,或者利用这个规则来做什么(比如字符串切割啊,字符串的内容替换啊),就这些了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2