使用javascript提取文本中的特定单词之前的8个单词和8个单词之后?

时间:2014-05-28 05:40:05

标签: javascript uiwebview

我有一个HTML页面,其中我使用javascript进行搜索,同时返回搜索文本,它也返回相邻的文本,但是这个相邻的文本被视为字符,而不是我想要前后特定数量的单词的单词搜索到的文字。任何人都可以帮助我。

2 个答案:

答案 0 :(得分:0)

String a = "12345678A98765432";

    System.out.println("My char or string is at postion " +a.indexOf('A'));
    System.out.println("First 8 are "+ a.substring(a.indexOf('A')-8, a.indexOf('A')));   
    System.out.println("Next 8 are  " +a.substring(a.indexOf('A')+1, a.indexOf('A')+9));   

结果是:

我的字符串或字符串位于第8位 前8个是12345678
接下来的8个是98765432

你也可以在java脚本函数中做同样的事情

答案 1 :(得分:0)

使用正则表达式,单词eiusmod之前和之后的8个单词,如果您想要8或更少,则可以将{8}更改为{,8}

var txt = "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua";
var result = txt.match(/((?:\s?(?:[\w]+)\s?){8})eiusmod((?:\s?(?:[\w]+)\s?){8})/);

var previousWords = result[1].trim().split(/\s/);
var nextWords = result[2].trim().split(/\s/);

结果:

> previousWords 
> ["dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "sed", "do"]

> nextWords 
> ["tempor", "incididunt", "ut", "labore", "et", "dolore", "magna", "aliqua"]
相关问题