当前位置: 首页 > 知识库问答 >
问题:

匹配关键字并提取行

慕金林
2023-03-14

我有一个文本区域,用户将在其中输入多行输入文本,我想逐行浏览并查找特定的关键字。一旦找到关键字,我想从该关键字中提取,直到行的末尾(即到达新行)。

我有以下代码,但它只在执行警报时提取Sender:作为输出。我不太熟悉JavaScript,所以真的很喜欢比这更优雅的方法。

function processFunction() {
    var lines = document.getElementById("textarea").value.split('\n');
    for(var i = 0;i < lines.length;i++){
        extractSenderIP(lines[i]);
    }
}

function extractSenderIP(someText) {

  var re = new RegExp( "Sender:", "g" );
  var result = re.exec(someText);
  alert(result);
}

共有3个答案

皇甫卓君
2023-03-14

< code>re.exec返回一个具有< code>index属性的对象,因此您可以这样做:

result = re.exec(someText);
alert(someText.substring(result.index))
巫经义
2023-03-14

由于您已经按换行符拆分('\n')拆分,因此您可以在循环中检查您的关键字是否匹配,然后得到如下所示的行:

寄件人:。*

  • 匹配发件人:
  • 匹配任意字符零次或多次<code>。*</code>

举个例子:

function processFunction() {
    var lines = document.getElementById("textarea").value.split('\n');
    for(var i = 0;i < lines.length;i++){
        extractSenderIP(lines[i]);
    }
}

function extractSenderIP(someText) {
    var re = new RegExp("Sender:.*", "g" );
    var result = re.exec(someText);
    if (result && result[0]) {
        console.log(result[0]);
    }
}

processFunction();
<textarea rows="4" cols="50" id="textarea">
Sender:test1
Sender:test1 Sender:test2
Sender: test2
test3</textarea>
申屠无尘
2023-03-14

您的正则表达式只查找单词“Sender:”。您需要告诉它查找发件人:后跟任何内容到下一个新行char:

 var re = new RegExp( "Sender:.*\n", "g" );

此时,您甚至不需要围绕行进行迭代。全局正则表达式应该找到所有实例并将它们返回到集合中。

 类似资料:
  • 模式匹配,多出现在函数式编程语言之中,为其复杂的类型系统提供一个简单轻松的解构能力。比如从enum等数据结构中取出数据等等,但是在书写上,相对比较复杂。我们来看一个例子: enum Direction { East, West, North, South, } fn main() { let dire = Direction::South; matc

  • 例如,尝试在特定代码后提取子字符串 上面的代码工作正常,但现在我需要在下面的示例的正则表达式中再添加一个标识符“/CODER/” 我试过了 但这不起作用。伙计们有什么建议吗? 谢谢

  • elasticSearch搜索:比如,我有一个关键字是“北京地铁”,但是我只想搜索挨着的关键词,比如搜索【北京】或者搜索【地铁】或者在搜索【北京地铁】这种的可以保证能匹配到,但是如果隔词搜索就不让他显示出来,比如:【北地】,【京铁】,这种隔词了,就不让搜索出来如何处理,不采用match_phrase的方法,还有没有更加高效的方法? 我尝试过使用match_phrase可以做到我要的结果,但是mat

  • 在 Ubuntu 14.04 LTS 下,我想备份我的 mysql 数据库。 使用 mysql 工作台进行备份时(通过:“服务器”-“数据导出”),我收到通知: mysqldump版本不匹配 /usr/lib/mysql-workbench/mysqldump版本为5.7.9,但要转储的MySQL Server版本为5.7.17。由于mysqldump的版本比服务器旧,因此某些功能可能无法正确备份

  • 本文向大家介绍1秒50万字!js实现关键词匹配,包括了1秒50万字!js实现关键词匹配的使用技巧和注意事项,需要的朋友参考一下 在论坛和聊天室这样的场景里,为了保证用户体验,我们经常需要屏蔽很多不良词语。对于单个关键词查找,自然是indexOf、正则那样的方式效率比较高。但对于关键词较多的情况下,多次重复调用indexOf、正则的话去匹配全文的话,性能消耗非常大。由于目标字符串通常来说体积都比较大

  • 我搜索了与Java正则表达式相关的问题,并找到了关于模式和匹配器类的信息,以获得关于reg-ex匹配条件的一组文本。 但是,我的要求不同,我希望提取正则表达式所表示的实际文本。 例: 使用Pattern和Matcher类(或Java中的任何其他方式),如何获得文本“22”?这是正则表达式所代表的文本。

  • 我正在寻找一种方法,防止在一个不需要关键词的地方匹配关键词。 看看下面的语法。“应用”和“输出”都是关键词。”OUTPUT'有一个包含任何字符的参数。 一切正常,但如果此参数包含单词APPLY,则会引发错误(外部输入APPLY预期规则_END)。 有办法解决这个问题吗?谢谢 示例文本 数字用户线

  • 本文向大家介绍python数据分析:关键字提取方式,包括了python数据分析:关键字提取方式的使用技巧和注意事项,需要的朋友参考一下 TF-IDF TF-IDF(Term Frequencey-Inverse Document Frequency)指词频-逆文档频率,它属于数值统计的范畴。使用TF-IDF,我们能够学习一个词对于数据集中的一个文档的重要性。 TF-IDF的概念 TF-IDF有两部