Для начала вы можете сделать следующее. Вы не предоставили достаточно информации / примеров для решения каких-либо проблем, с которыми вы сталкиваетесь.
'#20200514_EE#998501_123.#' -replace '^.*?(\d+)\D*$','$1'
'#20200514_EE#998501_123' -replace '^.*?(\d+)\D*$','$1'
-replace
использует сопоставление регулярных выражений, а затем заменяется строкой и / или сопоставленной заменой. ^
- начало строки. .*?
лениво сопоставляет все символы. \d+
соответствует одной или нескольким цифрам в группе захвата из-за инкапсуляции ()
. \D*
соответствует нулю или более нецифровых цифр. $
соответствует концу строки. Для замены $1
- это группа захвата 1
, которая была захвачена (\d+)
.
Вы можете использовать метод .Split()
также в сочетании с -replace
.
'#20200514_EE#998501_123.#'.Split('_')[-1] -replace '\D+$'