正则表达式学习资料库

  1. 收费学习视频(Jeffrey Way) 英文:https://code.tutsplus.com/courses/regular-expressions-up-and-running (youku有人上传)
  2. 在线代码编写:
    https://regexper.com/  (优势:图形化提示)(英文)
    http://www.regex101.com  (代码详细提示)(英文)
  3. 文字教程:
    http://www.deerchao.net/tutorials/regex/regex.htm
    https://juejin.im/post/582dfcfda22b9d006b726d11
    https://www.regular-expressions.info/quickstart.html (英文)

 

我所用到的正则(1):查找问号结尾的句子

正则:.*[\??]$

解析:任意字符,任意长度。【】中英文问号转义,中文问号直接写。$表示收尾。

在实际使用中发现有些句子没匹配出来,核对发现句尾有空格。

 

领悟理解与实际会运用还差的很远,感觉正则这种程序真是神一样存在,无论是js,java,C#,PHP都绕不过它。

要问上面我用正则要实现什么?

请看下面一张图。

阿里云虚拟主机之301跳转

今天客户咨询要做301跳转,不带WWW的网页,默认全转向带www的。

主机面板中就有此功能,但咨询阿里云技术下来得到的结论是:
301跳转只适合首页。

如果代码实现:
NT主机。配置web.config代码:

<rewrite>
  <rules>
    <rule name="Redirect to www" stopProcessing="true">
      <match url="(.*)" />
      <conditions trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^domain.com$" />
      </conditions>
      <action type="Redirect"
        url="{MapProtocol:{HTTPS}}://www.domain.com/{R:1}" />
    </rule>
  </rules>
  <rewriteMaps>
    <rewriteMap name="MapProtocol">
      <add key="on" value="https" />
      <add key="off" value="http" />
    </rewriteMap>
  </rewriteMaps>
</rewrite>

上面只适合.NET页面。
静态页无用。
后帮客户用JS实现了。
代码如下:

if( !/\.?www./g.test(location.host) ) location.href = location.href.replace("://","://www.")

新版visual studio code的正则改进

这些年前端后端的开发软件更新非常快。

一两年时间微软的visual studio code就占据了很大市场,特点:免费、快速、更新及时。

截了个运行时的提示图。

正好相应我上一篇文章:正则表达式学习笔记(1):回溯引用匹配与正则替换

这里多了个代码(?=<)这个里面的?=表述的含义是取<之前的文,注意不包括<号。

更多可以参考:https://www.regular-expressions.info/lookaround.html

实际在我之前VSC中调试正则,还不太方便,这次改进方便多了。

利用正则改文件名

应用场景:从youtube下载了上百个视频,这位视频主人一大爱好就是加表情。下载到本地的文件名中有各种框,心形等字符,但这种文件名,是上传不了百度云的。

我的目标就是去掉文件名中的这些字符。

 

自个写的简单的域名匹配正则

表达式:[0-9a-z-]+\.(com\.cn|net\.cn|com|net|cn)

解释说明:[0-9a-z-]+,[0-9a-z-]为数字与字母及“-”,后面的加号表现一或多次。(这里简单写了,实现复杂的话中划线不能为首或为尾,长度1-63)

点要转义,所以前面多加个了\线,域名后缀先写长的.com.cn,再写.com,以免匹配sina.com.cn这种时,只匹配到sina.com就停了。

yikai.cn
lunji.com
360.com
www.abc.com
sina.com.cn
my website is www.lunji.com

正则匹配域名