2016-05-16 2 views
0

Я использую Google Apps Script для возврата текстовой строки из объекта простых комментариев в базу данных в Google Таблицы. Я хотел бы указать некоторые комментарии, содержащие мой собственный «bbCode», например [Status: Complete]. Но я не уверен, как извлечь текст «Полный» и как удалить весь текст «[Status: Complete]» bbCode из текста комментария. Это где я получил до сих пор - спасибо за любые предложения:Использование регулярного выражения для извлечения строки

примера 1 комментарий текст: «[Status: Complete] Lorem Ipsum бла-бла»
Желаемый результат:     Col1: «Lorem Ipsum бла-бла '    Col2: 'Полная'

Пример 2 текст комментария: 'Lorem [Статус: Предлагаемый] Ipsum бла-бла'
Желаемый результат:     Col1: 'Lorem Ipsum бла-бла'     Col2:' Предлагаемый '

Пример 3 Текст комментария: 'Lorem Ipsum бла-бла'
Желаемый результат:     Col1: 'Lorem Ipsum бла-бла'     Col2:

var bbCode = '[Status: "; 
//get data from db and for next into val 
    var val = rs.getString(col+1); 
    if (val.indexOf(bbCode) > -1) { 
// Item with Status, place the status in the Status Column 
//but this next line is not right - I would like var Status = 'Complete' or 'Proposed' etc... 
    var Status = RegExp(.*\[Status: (.*)\].*', 'g'); 
    cell.offset(row, col+2).setValue(Status); 
// Place the remaining comment in the Comment column 
//This next line is not right I would like val = the comment string without the '[Status: Completed]' or '[Status: Proposed]' etc... 
    cell.offset(row, col+2).setValue(val); 
} else { 
// Enter comment in Comment column as normal 
    cell.offset(row, col+1).setValue(val); 
} 
+0

Являются ли '
' и 'nbsp;' частью фактического текста комментария, или это для форматирования? – Laurel

+0

Привет, Laurel, строка комментариев ввода может содержать некоторые html, но в этом случае я думаю, что примеры имеют простое нечетное форматирование - я просто пытался выровнять два столбца. – user2798561

ответ

0

Попробуйте этот пример:

function RegexGetTwoStrings() { 

Logger.log('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'); 
var sample = ['[Status: Complete] Lorem ipsum bla bla', 
       'Lorem [Status: Proposed] ipsum bla bla', 
       'Lorem ipsum bla bla']; 


var RegEx = /(.*)\[.*: (.*)\] (.*)/; 
var Replace = "$1$3,$2"; 


var str, newStr, Col1, Col2; 
var strArr = []; 
    for (var i = 0; i < sample.length; i++) { 
     str = sample[i]; 
     newStr = str.replace(RegEx, Replace) + ","; 
     strArr = newStr.split(','); 

     Col1 = strArr[0]; 
     Col2 = strArr[1]; 

     Logger.log("Sample1 = '" + str + "'"); 
     Logger.log('Col1 = ' + Col1); 
     Logger.log('Col2 = ' + Col2); 

    } 

Logger.log('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'); 

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