Регулярное выражение. удалить тире.

#c# #regex

#c# #регулярное выражение

Вопрос:

У меня большой массив имен. Программное обеспечение называет их очень длинными и не имеет способа переопределить это. Я хочу просто получить имя файла, которое мне нужно. Я использую регулярное выражение, потому что кажется, что оно должно иметь возможность получить только эту часть строки. Любая помощь была бы отличной, я провел день безрезультатно.

Вот результат.

UCM — S — Загрузка 1H_lester.virata.sfw811 — Лист — 1H-S11-00 — ПЛАН ОСНОВАНИЯ УРОВНЯ 01

UCM — S — Загрузка 1H_lester.virata.sfw811 — Лист — 1H-S11-00A — ПЛАН УСИЛЕНИЯ УРОВНЯ 01

UCM — S — Загрузка 1H_lester.virata.sfw811 — Лист — 1H-S11-01A — ПЛАН УСИЛЕНИЯ КРЫШИ 02 УРОВНЯ

Я хочу вернуть: 1HS1100 1HS1100A 1HS1101A

Комментарии:

1. Где регулярное выражение, которое вы пробовали? … Похоже, вам нужно это включить.

2. » d w W w d d W d d w?» Я использовал это, а затем заменил «-» на «». Я бы хотел, чтобы об этом просто позаботилось регулярное выражение. но не могу найти способ.

Ответ №1:

Вы можете записать строки с переносом w -[w-] с помощью (пример), а затем обработать их с помощью команды substitution / replace для замены '-' with '' .

Комментарии:

1. вот как я это делаю в данный момент, но ваше регулярное выражение более элегантно, поэтому я заменю свое на ваше.

Ответ №2:

«^[^d] (dw)_w .w .(w )[^d] (w )-(w )-(w )[^d] (d )»

Просто объедините все совпадения из приведенного выше регулярного выражения, и это должно сработать.