带你学习正则表达式

正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式,在 JavaScript中,正则表达式也是对象。

这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match、matchAll、replace、search 和 split 方法。

正则表达式可用于所有文本搜索和文本替换的操作那就开始吧~

/正则表达式主体/修饰符(可选)

在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。

结果:6

结果:The quick brown Monkey jumps over the lazy dog. If the dog reacted, was it really lazy?

结果:[\’\’, \’z\’, \’v\’, \’f\’, \’n\’, \’i\’, \’s\’]

结果:ain,ain,ain

在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。

结果:true

结果:e

  • i : 执行对大小写不敏感的匹配。
  • g : 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
  • m : 执行多行匹配
  • [abc] : 查找方括号之间的任何字符
  • [0-9] : 查找任何从 0 至 9 的数字
  • (x|y) : 查找任何以 | 分隔的选项
  • \\d : 查找数字
  • \\s : 查找空白字符
  • \\b : 匹配单词边界
  • \\uxxxx : 查找以十六进制数 xxxx 规定的 Unicode 字符
  • ^ : 表示开头
  • $ : 表示结尾

量词只对前一个内容起作用

  • n+ : 匹配任何包含至少一个 n 的字符串
  • n* : 匹配任何包含零个或多个 n 的字符串
  • n? : 匹配任何包含零个或一个 n 的字符串
  • ‘+’ : 至少一个
  • ‘-’ : 0个
  • {n} :正好出现n次
  • {m,n} :出现m-n次
  • {m, } : m次以上

去除以下字符串开头与结尾空格

he llo

  • 测试输入数字是否为手机号码思路:
  1. 手机号共11位
  2. 第一位为1 :^1
  3. 第二位为3-9的数字 : [3-9]
  4. 第三位以后为0-9的9位数字: [0-9]{9}$

true

  • 测试邮箱账号是否符合规则

思路看注释

true

OK~

菜鸟教程(https://www.runoob.com/)

MDN Web Docs(https://developer.mozilla.org)

等等

LabVIEW 数组函数/字符串函数——综合应用(以词频统计为例)

词频 (TF)是一词语出现的次数除以该文件的总词语数。 假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,那么“母牛”一词在该文件中的词频就是0.03 (3/100)。

利用LabVIEW中的字符串函数和数组函数 ,这里给出一个实现英文词频统计的过程,方便大家学习LabVIEW及其函数。

1、 单词分词

英文单词是以空格 标点以及其他特殊符号分割的 ,因此采用Match Pattern函数可以将文章中的单词分开。

如图所示:

字符串匹配函数

Match Pattern函数相对于Match Regular Expression函数是较为简单的匹配,但其速度更快。仅支持简单的及其规则。图中,“|”表示或关系。

分词过程:

分词过程

对分词后的数组 进行排序,有利于后续的词频统计

  1. 统计(去除)重复单词,统计重复的次数

对排序后的单词 逐对比较。如果不等则插入新的数组,否则不插入。

统计重复个数,逐对比较时,

如果两个(相邻)单词的相同 ,则使用Replace Array Subset替换数组子集函数,将最后一次插入后词频数组的最后一个元素用累加替换;

如果两个(相邻)单词的不同相同,则使用Insert Into Array插入数组函数,将新元素插入数组的最后,注意此函数索引连接的方法。

去除重复单词、统计重复次数

注意:此方法过程有一个问题,就是统计出的单词频次数(数组)会出现错位,也就是说此数组的最后一个元素实际是第一个单词出现的频次。

因此程序采取补救方法(利用 Rotate 1D Array数组循环调整一下)。

分析产生此问题的具体原因:统计时采用的逐对比较,开始比较的第0个和第1个元素,其实第一个元素(单词可以直接计数为1的))(读者可以给出你更好的解决方法,回帖哦)

  1. 最后将数值Number To Decimal String和Number To Fractional String统一转换成字符串,再拼接成一个二维字符串数组显示。如图:

程序运行结果

  1. 复制网络上的英文文章,运行程序,仔细观察程序分词结果。如果出现一些特殊符号,那么可以使用正则表达式将其考虑进去。

不断完善的正则表达式

上图表示 匹配查找 – —():,。’回车和数字

  1. 如果使用LABVIEW的集合数据类型 ,那么上述程序的后部部分 将可以简化很多。集合即数学意义上的集合,元素不同。

使用集合函数的结果与数组函数的结果一致 。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。