Mikä on uusi ilmaus vastaamaan uuden rivin merkkiä?

Emacs-regexissä \n ei vastaa uutta rivimerkkiä \n.

  1. Korjaanko, että $ vastaa uuden rivimerkin ja uuden rivimerkin välisen merkin sijaintia. esim. merkkijonolle abc\n, $ vastaa sijaintia c ja \n?
  2. Mikä on regex, joka vastaa \n?

Kommentit

  • Voisitteko antaa vähimmäiskäyttökohteen? Ehkä minusta ' puuttuu jotain, mutta (re-search-forward "\n") toimii minulle hyvin.
  • Tiedostosi saattaa käyttää \ r \ n uusille riveille, ja voi olla, että sinun on sisällytettävä \ r regexpiin, joten abc\r\n sijasta abc\n.
  • @Dan: CM: t ja Mx esiintyvät molemmat otteluissa \n kohtaan n. puskurini on perustilassa. Tämä tapahtuu mille tahansa tekstille, joten mikä tahansa teksti, jolla on uusi rivi tai kirjain n, on toimiva esimerkki
  • @Jordon: CM: t ja Mx esiintyvät molemmat otteluissa \r\nrn
  • @Tim, kyllä, koska jos kirjoitat niitä vuorovaikutteisesti, ' d täytyy tehdä lainatut insertit, Cq Cm ja Cq Cj. Voit kirjoittaa \ r \ n, jos kirjoitat ne lisp-merkkijonoon.

Vastaa

  1. Kyllä. $ vastaa rivin loppua , ei rivin lopun jälkeen tulevaa uuden rivin merkkiä .
  2. Tee C-M-s C-q C-j. C-q on oletus sidonta kohteelle quoted-insert ja toimii myös pienellä puskurilla. Tämä lauseke etsii kirjaimellisesti uutta riviä: C-j.

Kommentit

  • 2. sanotko, että uutta rivimerkkiä ei voi edustaa pakosarjana Emacsin regexissä?
  • Etsitköpä uutta riviä vuorovaikutteisesti vai elispin kautta (esim. (looking-at "^J") missä ^ J lisätään C-q C-j), lähestymistapa C-q C-j toimii aina. Mutta kun käytetään elisp-toimintoja, kuten samat looking-at \n toimivat myös; M-: (looking-at "\n") RET nousee todeksi, jos kohdistin on rivin lopussa (ja siellä ' sa uusi rivi sen jälkeen).
  • Mainitsen vain, että jos käytät regexp-builder, ' pystyt tunnistamaan uuden rivin, jolla on [\n].
  • @Nsukami_: CM: t ja Mx esiintyvät molemmat otteluissa [\n] ja n.

vastaus

Kuten Dan kommentoi, uudelle riville sopiva regex on uusi rivi .

Voit edustaa uutta riviä lainatussa merkkijonossa elisp muodossa "\n". Tähän ei ole erityistä regexp-specific -syntaksia – käytät vain uutta riviä, aivan kuten mitä tahansa muuta kirjaimellista merkkiä.

Jos syötät regexp vuorovaikutteisesti sitten voit lisätä uuden rivin Cq Cj -merkillä, kuten kaushalmodin vastaus osoittaa.

Kommentit

  • Kiitos! Onko Cq Cj ainoa tapa yhdistää uusi rivimerkki emacsissa (ei elispissä)? \n doesnt ' ei vastaa uutta rivimerkkiä.
  • Kyllä. Tarkemmin sanottuna uuden rivin kirjoittaminen on ainoa tapa sovittaa uuden rivin merkki, kun syötät regexp vuorovaikutteisesti (koska uudelle riville ei ole regexp-pakosarjaa), ja C-q C-j on luotettavin tapa kirjoittaa uusi rivi kehotteessa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *