2014-02-28 4 views
0

Это может появляться несколько раз в большой строке. Javascript Regex ..Сообщение с сообщением о регулярном выражении

Попытка сопоставить оба этих случая - (полужирный текст): сначала заканчивается), второй заканчивается 1-й двоеточием.

sometext sometext Предупреждающее сообщение: \\ SERVERNAME: служба TFTP отключена - нет биения. (\\ SERVERNAME)

и это:

IP-адрес: 1.1.1.1: Предупреждение Сообщение: Имя устройства недостижим: Класс события:/Статус/Ping: Сайт:

это работает для 2-го, но не для 1-го

.match(/Alert Message:.*? :/g) 

Какой rx будет соответствовать обоим случаям?

+1

Звучит хорошо. В чем вопрос? –

+0

Что-то вроде '/ Alert Message: (. *?) (\: | \)) /'? – adeneo

ответ

1

Вы можете использовать трубу '|' для обозначения «или» в регулярном выражении. Также вы можете использовать. *? чтобы пропустить незначительные части текста, чтобы найти важные разделы. Вот пример того, как в действительности: http://jsfiddle.net/985Kg/

var regex = new RegExp('(Alert Message.*?TFTP service is down - no heartbeat.|Alert Message: device name is unreachable)'); 

alert(regex.test('Alert Message: \\SERVERNAME: TFTP service is down - no heartbeat. (\\SERVERNAME)')); // alerts 'true'. 
0

Попробуйте следующее:

.match(/Alert Message:/g) 

Это намного больше общего, это может вызвать ложные тревоги.

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