2017-01-25 2 views
-1

У меня есть строка, как показано ниже: «Никакие оговорки можно выделить в группе StorageGroup1 Всего 330 ГБ было предложено.»Поиск строки с регулярным выражением? (Javascript)

Что иногда, однако я не всегда получается, что точную строку (с группой и общим номером GB, являющимся переменной), но когда я получу эту точную группировку строк, я знаю, что могу направить этот билет в соответствующую группу. Что лучший способ, чтобы разобрать его, а затем вытащить группу хранения и номер так, когда я создаю билет может быть динамическим

+0

* с группой и числом Всего ГБ является переменным * - если они являются переменными - зачем их разбирать? – RomanPerekhrest

+0

, потому что его общий обработчик ошибок, поэтому я знаю, когда я получаю это конкретное сообщение, он маршрутизирует один способ, и разные сеансы массажа ошибок могут маршрутизировать другой – krispykream4

ответ

0
var myString = "No reservation is available to allocate within the group StorageGroup1. Total 330 GB of storage was requested"; 
var myRegexp = /No reservation is available to allocate within the group StorageGroup(\d). Total (.*) of storage was requested/g; 
var match = myRegexp.exec(myString); 
if (match != null) { 
    var storageGroup = match[1]; 
    var size = match[2]; 
} 

Вы можете обрезать myRegexp в зависимости от ваших потребностей, я просто поставлю на него все предложения, чтобы быть в безопасности. http://jsfiddle.net/xbvpsp19/

UPDATE после @ krispykream4 замечания: Если имя группы может измениться, можно использовать следующий:

var myString = "No reservation is available to allocate within the group StorageGroup1. Total 330 GB of storage was requested"; 
var myRegexp = /No reservation is available to allocate within the group (\w*)(\d). Total (.*) of storage was requested/g; 
var match = myRegexp.exec(myString); 
if (match != null) { 
    var storageGroup = match[1]; 
    var groupName = match[2]; 
    var size = match[3]; 
} 

http://jsfiddle.net/LhL0w232

+0

Спасибо, моя догадка заключается в том, что (\ d) вытаскивает номер StorageGroup, но что, если группе было присвоено имя нечто вроде «AutomationGroup» или что-то еще вроде x – krispykream4

+0

@ krispykream4, проверьте обновление – burkay

0

Он будет идти с чем-то вроде:

var text = "No reservation is available to 
    allocate within the group StorageGroup1. Total 330 GB of storage was requested"; 

var result = text.match(/\d+\sGB/)[0]; 

/\ d + \ SGB ​​/ означает:

\ д + являются числами с последующим \ S пространства с последующим размером с выраженным буквам ГБ

+0

«вытащить группу хранения», не забудьте также захватить эту группу. – chrispy