Как извлечь дату (yyyy-dd-mm hh: mm: ss) из строки с помощью powershell [duplicate]

Решения здесь:

  1. Используйте None в качестве значения по умолчанию (или nonce object) и включите его, чтобы создать свои значения во время выполнения; или
  2. Используйте параметр lambda в качестве параметра по умолчанию и вызовите его в блоке try, чтобы получить значение по умолчанию (это то, что требуется для лямбда-абстракции).

Второй вариант хорош, потому что пользователи функции могут проходить в вызываемом, который может уже существовать (например, type)

8
задан Bo Persson 13 September 2011 в 23:21
поделиться

2 ответа

Быстрая и грязная:

$found = $string -match '.*spid="(\d+)".*'
if ($found) {
    $spid = $matches[1]
}

, где $string - ваша вышеупомянутая строка. Это будет соответствовать любой строке, которая имеет spid = «somenumberhere», и сделать число в соответствующую группу, которую вы можете извлечь, используя $matches[1].

26
ответ дан Jon Angliss 21 August 2018 в 04:20
поделиться
  • 1
    Почему все .* в регулярном выражении? – manojlds 13 September 2011 в 23:14
  • 2
    .* будет соответствовать чему угодно до и после него на этой строке, это действительно необходимо, только если вы использовали '^.*spid="(\d+)".*$' – Thymine 13 September 2011 в 23:17
  • 3
    Вы можете оставить их, не уверенные в влиянии на результат в любом случае. Вероятно, это немного чище / быстрее, чтобы оставить их, на самом деле не очень много думал об этом. – Jon Angliss 13 September 2011 в 23:17
  • 4
    Tkx ребята, прекрасно работает :) – user353401 13 September 2011 в 23:20
  • 5
    .*, как правило, не должны использоваться в регулярных выражениях, результаты могут быть непредсказуемыми, а производительность медленнее, потому что она будет соответствовать всей строке перед обратным трассировкой, чтобы найти следующий шаблон в регулярном выражении. В этом конкретном случае для матча требуется только spid="(\d+)". – David Clarke 10 May 2015 в 23:58

Сохраните это как, скажем, $string.

Тогда do

$string -match 'spid="(\d+)"'

Если есть совпадение, то нужное значение будет находиться в $matches[1]

0
ответ дан manojlds 21 August 2018 в 04:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: