Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 18 submissions in the queue.
posted by janrinok on Wednesday March 27, @08:12PM   Printer-friendly
from the I-didn't-know-that-... dept.

https://buttondown.email/hillelwayne/archive/why-do-regexes-use-and-as-line-anchors/

Last week I fell into a bit of a rabbit hole: why do regular expressions use $ and ^ as line anchors?1

This talk brings up that they first appeared in Ken Thompson's port of the QED text editor. In his manual he writes: b) "^" is a regular expression which matches character at the beginning of a line.

c) "$" is a regular expression which matches character before the character (usually at the end of a line)

QED was the precursor to ed, which was instrumental in popularizing regexes, so a lot of its design choices stuck.

Okay, but then why did Ken Thompson choose those characters?


Original Submission

 
This discussion was created by janrinok (52) for logged-in users only, but now has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 4, Informative) by KritonK on Thursday March 28, @06:40AM (1 child)

    by KritonK (465) on Thursday March 28, @06:40AM (#1350641)

    Think about it: you can install vim and any modern system today - and I do mean ANY system: there's a port of vim for every OS known to man - and you can still hit ^and $ for quick navigation.

    Although I do use $ to go to the end of the line, I use 0 to go to the beginning of the line. It's much easier to type.

    Starting Score:    1  point
    Moderation   +2  
       Informative=2, Total=2
    Extra 'Informative' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   4  
  • (Score: 4, Informative) by Geoff Clare on Friday March 29, @11:03AM

    by Geoff Clare (2397) on Friday March 29, @11:03AM (#1350832)

    They are actually slightly different. If the line is indented, 0 goes to the very beginning but ^ goes to the first character after the indent.