Pytania otagowane jako regular-expressions

dotyczy wzorców określających wyszukiwanie lub zamianę ciągów. Znane również jako „regex” lub „regexp”, wzorce opisują ciągi do dopasowania podczas wyszukiwania lub zamiany. Emacs zapewnia szerokie wsparcie dla wzorców `regex` w wielu poleceniach. Emacs zapewnia również interaktywny konstruktor wyrażeń dla takich wzorców.

2
Zrozumienie emacsa align-regexp
Przeczytałem dokumentację Emacsa, align-regexpale wciąż mam trudności ze zrozumieniem, jak to działa. Mówię o formie z prefiksem C-uM-xalign-regexp, a nie o formie prostej M-xalign-regexp. Oto moje pytania: Czy pierwszy parametr (regex) musi pasować do całej linii ciągu? Co się stanie, jeśli wyrażenie regularne pasuje tylko do części ciągu? Co podać …

1
Dlaczego wyrażenia regularne utworzone za pomocą konstruktora wyrażeń regularnych używają składni innej niż interaktywne wyrażenia regularne?
Tak więc, używając konstruktora wyrażeń regularnych (re-builder Mx), znajdowanie linii kończących się na \ wymaga „\\ $”, podczas gdy wyszukiwanie i zamiana na wyrażenie regularne zajmuje tylko „\ $”. Oczekiwałem, że konstruktor wyrażeń regularnych będzie budował wyrażenia bezpośrednio użyteczne, więc co tłumaczy tę różnicę?

2
Co to jest wyrażenie pasujące do znaku nowej linii?
W wyrażeniu regularnym Emacsa \nnie pasuje do nowego znaku linii \n. Czy mam rację, że $dopasowuje pozycję między nowym znakiem linii a znakiem tuż przed nowym znakiem linii. np. dla łańcucha abc\n, $dopasowuje pozycję pomiędzy ci \n? Jakie wyrażenie regularne pasuje \n?

6
Pobierz wszystkie dopasowania wyrażeń regularnych w buforze jako listę
Na stronie Code Golf Stack Exchange znalazłem dziś odpowiedź w Clojure na pytanie „Uzyskaj wszystkie linki na stronie internetowej”. (->> (slurp "http://www.stroustrup.com") (re-seq #"(?:http://)?www(?:[./#\+-]\w*)+")) Bez fantazyjnego makra jest to tylko: (re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp "http://www.stroustrup.com")) To zwraca listę: ("http://www.morganstanley.com/" "http://www.cs.columbia.edu/" "http://www.cse.tamu.edu" ...) Czy mogę zrobić coś podobnego w Emacs Lisp? Być …

3
Elisp regexps ^ i $ vs `i '
Podręcznik opisuje regexp znaków specjalnych ^i $. Podobnie jak w większości dialektów wyrażeń regularnych, które znam, wydają się pasować do początku lub końca łańcucha. Jednak odkryłem również, że są dostępne `i 'postacie. W oparciu o wyjaśnienie tutaj , wydaje się, że pasują również do początku lub końca ciągów. Czy ktoś …

1
Jak utworzyć dynamiczne wyrażenie regularne za pomocą rx?
Chcę używać rxdo tworzenia wyrażeń regularnych z wartościami środowiska wykonawczego. Obecnie robię to: (setq strings '("foo" "bar" "baz")) (eval `(rx symbol-start (or ,@strings) symbol-end)) Wolałbym jednak unikać używania eval. Znalazłem rx-to-string, ale nie jest jasne, jaki FORMULARZ powinienem napisać: ;; error: Unknown rx form `symbol-start (rx-to-string '(symbol-start (or ,@strings) symbol-end)) …

2
Jak mogę interaktywnie przetestować i używać wyrażenia regularnego Perl?
Powiedzmy, że mam bufor z tekstem. Chciałbym przetestować wyrażenie regularne (najlepiej typ Perla) na moim buforze i pozwolić Emacsowi zaznaczyć na nim dopasowania. Na przykład następujące wyrażenie regularne ( wzięte z Wikipedii ): (?<=\.) {2,}(?=[A-Z]) będzie pasować w następujący sposób do następującego tekstu: To wyrażenie regularne w szczególności pasuje do …


3
Czy istnieje odpowiednik komend zastępczych w stylu sed z vima?
Jedną z rzeczy, za którymi tęsknię za vimem, jest możliwość wpisania polecenia podstawienia, które będzie działać w wielu liniach, na przykład: :/begin/,/end/s/foo/bar/g Powyższe polecenie zamienia „foo” na „bar” zaczynając od pierwszego wiersza zawierającego „początek” i kończąc na następnym wierszu po tym, który zawiera „koniec”. Czy istnieje sposób na zrobienie czegoś …

7
Jak ćwiczyć wyszukiwanie i zastępowanie wyrażeń regularnych interaktywnie w Emacsie?
Wyszukiwanie i zamiana za pomocą wyrażeń regularnych jest oczywiście potężnym narzędziem dla użytkownika Emacsa, który może rutynowo wykonywać te czynności. Jednak jako początkujący Emacs (i / lub programista) należy nauczyć się i ćwiczyć wyrażenia regularne. Czy mogę uczyć się i trenować wyrażenia regularne interaktywnie w Emacsie, podobnie jak wbudowany samouczek …

2
Stopniowo zamień podany ciąg
Powiedzmy, że mam taki tekst poniżej: AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) Teraz chcę zastąpić nntakimi liczbami AC (0) AC (1) AC (2) AC (3) AC (4) AC (5) AC (6) AC (7) AC …


1
Jak wyszukiwać arabskie słowo w tekście bez znaków diakrytycznych / akcentów?
W języku arabskim, podobnie jak w niektórych innych językach, istnieje tak zwane znaki diakrytyczne w celu poprawy wymowy. Nie ma konwencji dotyczącej liczby znaków diakrytycznych dla jednego słowa. Niektórzy używają minimum (które preferuję) na tyle, aby jednoznacznie wymawiać, podczas gdy inni używają ich zbytecznie lub po prostu dla celów estetycznych …

1
Tryb zła i wyrażenia regularne
W Vimie, jeśli chcę wyszukać wszystkie nazwy zmiennych LX, gdzie X jest liczbą, mogę po prostu wpisać /L\d. Nie wydaje się to jednak działać evil. Czy istnieje inna składnia wyrażeń regularnych w trybie Evil, czy też będę musiał skorzystać z niektórych funkcji Emacsa w celu wyszukiwania i zamiany za pomocą …

1
wydajność „wstecz”
Mam trochę kodu (looking-back … (line-beginning-position)). Dokumentuj ciąg looking-backstanów, że lepiej jest unikać tej funkcji z powodu spowolnienia. Jestem ciekaw, czy kolejne podejście będzie szybsze? (save-excursion (goto-char (line-beginning-position)) (looking-at regexp stuff))

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.