Mam dużą ilość tekstu z wcięciem (konturem), w którym brakuje wiodącego znaku wypunktowania:
some point
a sub-point
Chcę zastąpić każdą kartę 2 spacjami i dodać myślnik z przodu. Potrzebuję formatu docelowego:
- some point
- a sub-point
Znajdź:
mogę użyć wyrażenia regularnego, \t+\S
aby znaleźć „dowolną liczbę zakładek, a następnie dowolne spacje”. Działa to dobrze, a funkcja „znajdź” podkreśla początek każdej linii, aż do pierwszego znaku niezawierającego tabulatorów.
Zastąp:
Jak mogę użyć wyrażenia regularnego, aby określić „zamień każdą tabulator na 2 spacje, a następnie jeden myślnik i jedną spację, a następnie oryginalny znak inny niż tabulator”? Konkretnie:
- Jak określić zamianę, która ma się odbyć „tyle razy, ile było wyników w znalezieniu”? (Tak więc trzy tabulatory zamieniają się w sześć spacji itp.)
- Jak określić dosłowne „jeden łącznik, a następnie jedną spację”?
- Jak określić „nie zmieniaj znaku, który nie jest tabulatorem”?
Moje google-fu doprowadziło mnie do koncepcji,\1
ale nie wiem, jak mogę to wykorzystać. Moje testy prób i błędów spowodowały jedynie błędy.
Aktualizacja:
Odkryłem coś o \1
: Muszę użyć nawiasów w moim find ciąg: (\t+)(\S)
a następnie użyć jej w zastąpienia części: \1- \2
. Pomaga mi to rozwiązać powyższe punkty 2 i 3, ale wciąż brakuje mi około 1!
Aktualizacja:
Duh - nr 1 może być prostą operacją znajdowania / zastępowania wyrażeń regularnych, o ile w tekście nie ma żadnych znaków tabulacji. Muszę to teraz zbadać!
Próbuję z Gedit Ubuntu, ale mogę również użyć Notepad ++ lub Sublime, jeśli masz sugestie dotyczące konkretnego edytora.