当前位置: 首页 > 编程笔记 >

javascript字符串循环匹配实例分析

万俟棋
2023-03-14
本文向大家介绍javascript字符串循环匹配实例分析,包括了javascript字符串循环匹配实例分析的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了javascript字符串循环匹配的方法。分享给大家供大家参考。具体如下:

采用exec和String.match方法,对于exec必须开启全局匹配g标识才能获取所有匹配

// 需要提取这种数据 <td>2012-12-17</td><td>11:02 , 12:25 , 13:22 , 15:06 , 15:12 , 19:22 , 23:47</td>
var rawData = '<table><th align="left" scope="col">日期</th><th align="left" scope="col">签到签退时间</th></tr><tr class="GridViewRowStyle" style="height:20px;">'
    + '<td>2012-12-03</td><td>10:16 , 13:22 , 20:05</td></tr><tr class="GridViewRowStyle" style="height:20px;">'
    + '<td>2012-12-04</td><td>11:16 , 14:22 , 21:05</td></tr><table>';
// 方法一
var regexp = /<td>(\d{4}-\d{2}-\d{2})<\/td><td>(.*?)<\/td>/g;
// 加上g标识才会全局匹配,否则只匹配一个
var matchedArray = regexp.exec(rawData);
while(matchedArray != null) {
 console.dir(matchedArray);
 matchedArray = regexp.exec(rawData);
}
// 方法二
var regexp = /<td>(\d{4}-\d{2}-\d{2})<\/td><td>(.*?)<\/td>/g;
// 加上g标识才会全局匹配
var matchedArray = rawData.match(regexp);
console.dir(matchedArray);
// 方法三
var regexp = /<td>(\d{4}-\d{2}-\d{2})<\/td><td>(.*?)<\/td>/;
// 不加g标识
var matchedArray = rawData.match(regexp);
console.dir(matchedArray);
console.log(matchedArray.index);
while(matchedArray != null) {
 rawData = rawData.substr(matchedArray.index + matchedArray[0].length);
 matchedArray = rawData.match(regexp);
}
console.dir(matchedArray);

希望本文所述对大家的javascript程序设计有所帮助。

 类似资料:
  • 本篇主要讲字符串匹配以及字符串算法中三个主要算法的一些内容,帮助大家理解。 一、基本概念 字符串匹配问题 假设文本是一个长度为n的数组T[1…n],而模式是一个长度为m的数组P[1…m],其中m≤n,进一步假设P和T的元素都是来自一个有限的字母集∑的字符。数组T和P通常被称为字符串。 如果0≤s≤n−m,并且T[s+1…s+m]=P[1…m],那么称模式P在文本T中出现过,且偏移为s。如果P在T中

  • 本文向大家介绍Python字符串匹配算法KMP实例,包括了Python字符串匹配算法KMP实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python字符串匹配算法KMP。分享给大家供大家参考。具体如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 问题 你想要匹配两个或多个字符串。 解决方案 计算把一个字符串转换成另一个字符串所需的编辑距离或操作数。 levenshtein = (str1, str2) -> l1 = str1.length l2 = str2.length prevDist = [0..l2] nextDist = [0..l2] for i in [1..l1] by 1

  • 问题内容: 我有一个字符串,其中单词“ LOCAL”多次出现。我使用该函数搜索该单词,但它也返回另一个单词“ Locally”。我如何准确匹配“本地”一词? 问题答案: 对于这种事情,正则表达式非常有用: \ b基本上表示单词边界。可以是空格,标点符号等。 编辑评论: 显然,如果您不想忽略这种情况,则可以删除flags = re.IGNORECASE。

  • 我正在尝试创建一个Lucene4.10索引。我只想在索引中保存我放入文档的确切字符串,witout标记化。 我在用StandardAnalyzer。 我试图搜索术语“燃料箱容量”@en(包括引号),所以我试图省略它们,并在术语周围添加了另外几个引号,以便让lucene理解我正在搜索整个文本。 如果我打印查询,我会得到:3:“燃料箱容量en”,但我不想拆分@符号上的文本。 我认为我的第一个问题是St

  • 问题内容: 我正在寻找使用ScanFilter搜索一组蓝牙设备。我知道所有这些设备的地址都以00:A0:50开头,然后最后6位数字有所不同,因此所有地址看起来都像00:A0:50:XX:XX:XX。我正在寻找一种使用setDeviceAddress来查找地址以那6位数字开头的设备的方法。这将字符串作为输入。相关代码如下。 我想我需要为此使用诸如正则表达式之类的东西,但是我对Java,Android