timeoutable
относится к тайм-ауту сеанса входа в систему. Никаких дополнительных столбцов не требуется, просто добавьте их в свою модель.
Хук timeoutable
содержит всю магию (источник: https://github.com/plataformatec/devise/blob/master/lib/devise/hooks/timeoutable.rb )
Это должно работать:
\[\(\d+\).*?\]
И если вам нужно поймать номер, просто заключите \ d +
в круглые скобки:
\[\((\d+)\).*?\]
Вы должны сопоставить []? Можете ли вы сделать просто ...
\((\d+)\)
(Сами числа будут в группах).
Например ...
var mg = Regex.Match( "[(34) Some Text - Some Other Text]", @"\((\d+)\)");
if (mg.Success)
{
var num = mg.Groups[1].Value; // num == 34
}
else
{
// No match
}
Что-то вроде:
\[\(\d+\)[^\]]*\]
Возможно, потребуется еще экранирование?
Как насчет "^ \ [\ ((d +) \)" (стиль perl, не знакомый с C #). Я думаю, вы можете спокойно игнорировать остальную часть строки.
Как это? Предполагая, что вам нужно только определить, является ли строка совпадением, и не нужно извлекать числовое значение ...
string test = "[(34) Some Text - Some Other Text]";
Regex regex = new Regex( "\\[\\(\\d+\\).*\\]" );
Match match = regex.Match( test );
Console.WriteLine( "{0}\t{1}", test, match.Success );
В зависимости от того, что вы пытаетесь выполнить ...
List<Boolean> rslt;
String searchIn;
Regex regxObj;
MatchCollection mtchObj;
Int32 mtchGrp;
searchIn = @"[(34) Some Text - Some Other Text] [(1)]";
regxObj = new Regex(@"\[\(([^\)]+)\)[^\]]*\]");
mtchObj = regxObj.Matches(searchIn);
if (mtchObj.Count > 0)
rslt = new List<bool>(mtchObj.Count);
else
rslt = new List<bool>();
foreach (Match crntMtch in mtchObj)
{
if (Int32.TryParse(crntMtch.Value, out mtchGrp))
{
rslt.Add(true);
}
}