У Блокноті ++ є такі приклади даних:
ES value="tren";
FR value="train";
EN value="train";
PT value="tren";
DE value="Zug";
Я хочу вибрати і замінити слово "поїзд" у рядку, що починається з "EN". Чи можу я це зробити з RegEx?
Відповіді:
2 для відповіді № 1Ви можете використовувати
Знайти що: ^(ENh.*")train(";)$
Замінити: $1NEW_WORD$2
Подробиці:
^
- початок рядка(ENh.*")
- Захоплення 1 групиEN
, горизонтальний пробіл, тоді будь-які знаки 0+, крім знаків розриву рядків, наскільки це можливо до останнього"
...train
- буквальноtrain
підрядка(";)$
-";
в кінці рядка.
0 для відповіді № 2
Виходячи з відповіді #Wiktor Stribiżew, мені вдалося це таким чином:
Пошук: ^(ENs.*[^a-zA-Z0-9])Train([^a-zA-Z0-9].*)$
Подробиці:
^
Початок рядкаENs
"EN", за яким пробіл.*
Щось[^a-zA-Z]
Останнім символом перед словом не повинно бути буквою, це уникає заміни слова у випадках, таких як "мінусипоїздт "Train
слово шукали- Решта рядка слідує тій же логіці, за винятком
$
, що якраз вказує на кінець рядка.
Замінити: 1Boat2
Подробиці:
1
і2
посилаються на круглі дужки з пошуку вище. Тому я залишаю результат пошуку дужок таким, яким він є, лише змінюючи частину "Потяг".
Я не впевнений, чому синтаксис іншої відповіді не працював для мене в Notepad ++, але це спрацювало.
Сподіваюся, це допоможе.