正则表达式——火星文

Posted Lu_Lu的攻城路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式——火星文相关的知识,希望对你有一定的参考价值。

之前在学习到正则表达式的时候,真的看了两秒直接就跳过了,真的看到都怕,来自地球的我表示真的看不懂这个传说中的火星文,但是,要想学习到更多的知识,我深知逃避是解决不了问题的,于是我硬着头皮尝试的去理解它,今天简单记录下来,以供以后来鄙视

 

正则表达是其实就是规则表达式,就是我们要找的条件翻译成计算机能读懂的语言

 

创建正则对象有两种方式:

js风格——new RegExp("a","i");   

perl风格——/a/i;      

语法与释义:
  基础语法 "^([]{})([]{})([]{})$"
  正则字符串 = "开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束"

匹配邮箱的例子

 

//邮箱规则拆分:开始一串数字、字母、下划线@一串数字、英文.一串英文(最少2,最多4)结束

var re=/^\[email protected][a-z0-9]+\.[a-z]{2,4}$/g;

 

其中g代表全局匹配,i代表不区分大小写;

 

常用运算符与表达式:
  ^ 开始
  () 域段
  [] 包含,默认是一个字符长度
  [^] 不包含,默认是一个字符长度
  {n,m} 匹配长度 
  . 任何单个字符(\. 字符点)
  | 或
  \ 转义
  $ 结尾
  [A-Z] 26个大写字母
  [a-z] 26个小写字母
  [0-9] 0至9数字
[A-Za-z0-9] 26个大写字母、26个小写字母和0至9数字
  , 分割

去掉首尾空格例子:--考察开头和结束字符使用

var re=/^\s+|\s$/g;

匹配是否存在中文:

var re=/[\u4e00-\u9fa5]/;

 

理解常用的正则表达式:

[abc] a或者b或者c

等价:
等价是等同于的意思,表示同样的功能,用不同符号来书写。
{n,m}表示范围,至少出现n次,最多m次
?,*,+,\d,\w 都是等价字符
量词:
  ?等价于匹配长度{0,1}    //零次或1次
  *等价于匹配长度{0,}     //任意次
  +等价于匹配长度{1,}    //一次或任意次
 
 
  \d等价于[0-9]  
  \D等价于[^0-9]
  \w等价于[A-Za-z_0-9]
  \W等价于[^A-Za-z_0-9]
  
  \b匹配一个单词边界,也就是指单词和空格间的位置(即正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里的\b就是匹配位置的)。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”
  \B匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”
 
运用正则,写完美版getByClass()
function getByClass(oParent,aClass){
                var aEle=oParent.getElementsByTagName(‘*‘);
                var aResult=[];
                var re=new RegExp(‘\\b‘+sClass+‘\\b‘,‘i‘);
                
                for(var i=0;i<aEle.length;i++){
                    if(re.test(aEle[i].className)){
                        aResult.push(aEle[i]);
                    }
                }
                return aResult;
            }

 

 

  

以上是关于正则表达式——火星文的主要内容,如果未能解决你的问题,请参考以下文章

华为OD机试 - 火星文计算 2(Python)| 真题+思路+代码

华为OD机试 - 火星文计算2(JS)| 真题+思路++考点+代码

正则对象

正则表达式基本用法

正则表达式(轻松入门级)

关于我们的正则