Slash Boxes

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.

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.