Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am trying to move away from TextPad, and I just can't get regular expressions like ^ and $ to be replaced. I have definitely ticked the regular expression box.

What am I doing wrong?

I am trying to find the start of a new line. In TextPad, it is find '^' and ensure regular expressions is enabled. With Notepad++ it does not do that. It just says "Not found".

share|improve this question

migrated from stackoverflow.com May 27 '10 at 18:53

This question came from our site for professional and enthusiast programmers.

    
I've used TextPad and found this same issue to be annoying (to put it mildly). Basically, Npp's Regex functionality is stunted when comared to most other Regex-s. This stems from the fact that Npp is an abstraction of the Scintilla Editor which uses a single-line-based RegEx :( -- The Npp crew are quite well aware of this issue, but it has (oddly) been on the back-burner (a time and resources issue). $ does work, but they haven't got ^ to work multi-line (yet). I know this limitation, and work with (and aroud it). As mentioned below ^(.) works. (Rarely, I revert to TPad or UltraEdit) –  Peter.O Aug 5 '10 at 23:59
1  
PS. you can often use Extended (vs RegEx ) as a workaround for \r and \n - this semi-mimics a start-of-line. Also, as a by-the-way, you can stay in Normal search and turn on View -- Show Symbol -- Show End of Line.. Although they don't (visually) appear in the Find-field, if you select CRLF first, the Find-field auto-prime kicks in when you press CTRL+F, and it quite happily becomes a multi-line (but not RegEx) search. Its not much different to Extended search, but I found it to be interesting, and some readers may also find it so. (I love Npp :) –  Peter.O Aug 6 '10 at 0:21

5 Answers 5

Because these are special characters that represent the front (^) and end of line ($). Try escaping them with a \\.

Examples:

Match "Cat" at the beginning of the line:

^Cat

Match "Cat" at the end of line:

Cat$

Match "Cat" as only thing on a line:

^Cat$

Match a "$100" within a line:

\$100 

Here is a link for the specifics on regular expression matching within Notepad++.

share|improve this answer
1  
The link seems to be (effectively) broken. –  Peter Mortensen Nov 1 '12 at 1:50

^ and $ are both anchors in Regex, which means if you want to replace the literal chars ^ and $ you need to escape them, usually with a leading backslash (\^, and \$).

To find the first character on a line use ^.

The start line anchor (^) is a zero-width match, so combining it with the . will find any character at the beginning of a line.

Maybe you can explain what you're actually trying to do?

share|improve this answer

I've had the same issue myself. After some trial and error you can achieve the same by doing the following:

Find: ^(.)

Replace: [the string you wish you insert]\1

What this will do is locate and tag the first character of the line, put in the new string and put the tagged character after it.

For example, I needed to insert a single quote at the start of each line:

Find: ^(.)

Replace: '\1

You can do the same for the end of the line by doing:

Find: (.)$

Replace: \1*[the string you wish to append]*

share|improve this answer

I got it.

Before

  • Albert@hotmail.com
  • Lucas@gmail.com
  • Rober_Klein@aol.com
  • Fisher@zmail.com

After

  • Albert
  • Lucas
  • Rober_Klein
  • Fisher

Remove after character or text

@(.*)$

Remove before character or text

^(.*)@

dot = any character
asterisk = zero or more times
share|improve this answer

Here is how to do it...

Before:

$_GET['id']; $_GET['nick'];

After:

htmlentities($_GET['id']); htmlentities($_GET['nick']);

So. On the find field put:

$_GET(.*])

On the replace field put:

htmlentities($_GET\1)
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.