2015-06-26 2 views
-2

EDIT:Mea culpa! Он совершил кардинальный грех с просьбой предоставить библиотечную рекомендацию и был быстро поставлен на защиту. Вот проблема: у меня есть два или более фрагмента текста. Например:Сравнить более двух документов

: с Here's some text.

б: Here's some more text.

с: Here's some text with the word blue.

И хотите получить:

'Here's some <var_1>text<var_2>.'

где

VAR_1 документ А держит ''

VAR_1 документ B имеет 'more '

VAR_1 документ С имеет ''

var_2 документ С имеет ''

var_2 документ б держит ''

var_2 документ С проводит ' with the word blue'

Это для веб-приложения на основе Javascript, сильно зависящего от jQuery; однако для тестирования мне нужно решение, совместимое с node.js.

+2

Вопросы просят нас, чтобы рекомендовать или найти книгу, инструмент, библиотека программного обеспечения, учебник или другие пределы участка ресурсов являются вне темы для переполнения стека, поскольку они, как правило, привлекают упрямый ответы и спама , http://stackoverflow.com/help/on-topic – isherwood

ответ

0

Простые регулярные выражения, такие как /(.*)text(.*)/ могут это сделать.

Затем вы можете использовать метод String.match() для получения значений групп захвата.

var str = ["Here's some text","Here's some more text.","Here's some text with the word blue."]; 
 

 
for (var i = 0; i<str.length; i++){ 
 
    var res = str[i].match(/(.*)text(.*)/); 
 
    log("document "+i+" var_1 : "+res[1]+"<br>"+"document "+i+" var_2 : "+ res[2]+"<br>"); 
 
    } 
 

 
function log(msg){ 
 
    document.querySelector('p').innerHTML+= msg; 
 
    }
<p/>

+0

Не нужно ли мне знать, что входные документы имеют «текст»? – Peter

+0

Да, конечно, и вам придется заменить 'text' на' /(.*)text(.*)/);' по общему. Но вы имеете в виду, что вы еще не знаете эту общую часть? – Kaiido

Смежные вопросы