zoukankan      html  css  js  c++  java
  • 正则表达式学习 简单

    这两天对js正则表达式的认识,又有所强化:

    1. 正则匹配顺序:

    直接看示例: /^\s*(.*)\s*$/gi(愿意是实现trim功能) 匹配文本 " abcd   adddd    "

       由于*的贪婪性,通过^\s* 先顺序读取到文本开头的空格,然后继续匹配,正则的.*匹配了后边所有的内容(而尾部\s*$ 则仅仅匹配了空字符串)

      按照这种匹配顺序,就可以用一种替换方案:先去掉开头的空白,再去掉尾部的空白

    2. 反义字符类的使用:

     之前一直有误区,认为直接使用^就可以表示反义,其实正确的说法应该是:

    配合[^]才能实现反义字符类

    示例:/[^1-9]/  表示匹配的内容不是数字1-9.

    3. 一个示例看思维:

     从指定字符串中提取域名和端口号,如:

    www.123.com

    www.456.com:8080

    正则:re = /([^\/\:]*):?(\d*)/ 

    (之前一直纠结于/.+:?(\d*)/,明显.+具有贪婪性,直接匹配整个字符串。所有,针对这种场景,需要反过来思考)

  • 相关阅读:
    Codeforces-541div2
    动态规划-线性dp-hdu-4055
    动态规划_线性dp
    动态规划_背包问题笔记
    codeforces-1111
    数论模板
    codeforces-1114F-线段树练习
    2-sat
    拓扑排序
    强连通分量
  • 原文地址:https://www.cnblogs.com/chyong168/p/2256167.html
Copyright © 2011-2022 走看看