首页 » 我的课程 » 正则 » 正文

正则课程文字版(一):热身篇

正则表达式是什么

    正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

正则表达式的用途
1、在处理字符串、网页文本时正则表达式是当仁不让的。
2、譬如按规则替换一些危险字符(敏感字符)、半夜偷偷用程序抓取别人写的文章占为己有、写一些爬虫程序都需要用到正则表达式。
3、如果你在电脑中查找后缀为jpg的文件,你会输入*.jpg 。好吧,这说明你已经有学习正则表达式的潜力和经验
4、PHP、C#、Java、C++、VB、Javascript、Ruby以及python等谁敢不支持正则?
那么让我们开始吧~~~~~

开始学习

首先看一段代码 (javascript)
 var str=”hello world,hello WORLD,Hello World,HELLO world.”;
 var pattern=/world/;  //javascript 中 /…../ 来概括匹配模式 无需双引号
 var r=str.match(pattern); //javascript 中匹配的代码,会返回一个数组
   alert(r)

大家看一下,为啥明明有2world能匹配到,却只显示一个呢?


看一段代码 (PHP)
  $str=”hello world,hello WORLD,Hello World,HELLO world.”;
   $pattern=”/world/”;
   preg_match($pattern,$str,$result);
  
   var_export($result);
问题又来了,PHP中为啥明明有2world能匹配到,却只显示一个呢?

看一段代码 (Java)
 String str=”hello world,hello WORLD,Hello World,HELLO world.”;
 Pattern p=Pattern.compile(“world”);
 Matcher m=p.matcher(str);
 while(m.find())
 {
    System.out.println(m.group());
 }
 
//通过while 能把所有匹配到的单词输出来

进阶一下:假设我们不知道 world怎么拼,只记得首字母是w,尾字母是d。该肿么办


实现办法

Js: 

     var pattern=/w\w+d/g;

PHP 

    $pattern=”/w\w+d/”; 

Java 

     Pattern p=Pattern.compile(“w\\w+d”);

为什么在wd之间加一个\w+
\w 大小写字母、数字、下划线
+ 匹配前面的子表达式一次或多次(大于等于1次)

第二种办法
Js:
 var pattern=/w\w{3}d/g;
PHP
$pattern=”/w\w{3}d/”;
Java
 Pattern p=Pattern.compile(“w\\w{3}d”);

\w{3}是什么
\w 大小写字母、数字、下划线
{3} 代表只有3个匹配字符
组合一下
\w{3}
代表 只有3个匹配的字母、数字、下划线

本文共 1 个回复

  • 匿名 2016/12/25 17:42

    😈 😈

发表评论