“Find and Replace” is a huge time saver but sometimes you need something more flexible than replace ‘x’ with ‘y’.

This is where Regular Expressions come in handy.

This article explains how to use wildcards and other advanced features that gives super powers to the humble “Find and Replace” modal.

This article uses a free program called Notepad++.  If you don’t have it, you can download it here.

How to Wrap paragraphs with Find/Replace

Consider this example…

Say you have a document formatted like the image above. Imagine you needed to wrap each paragraph in <p> tags. A normal “Find and Replace” can’t do that, but it’s possible with “Regular Expressions”.

  1. Find and Replace

    In Notepad++ press Ctr+H to open the “Find and Replace” window.

  2. Click “Regular Expression”

    Choose Search Mode: “Regular expression” and then check “matches newline”.

  3. Add <p> tag to beginning of each line

    Find what: \n..
    Replace with: \n \n<p>

  4. Notice Added <p> tag

    You should see <p> tags at the beginning of each line

  5. Add Closing <p> tag

    Find what: \n \n
    Replace with: </p> \n \n

  6. Notice Closing </p> tags

    You should see closing </p> tags at the end of each line.

 So what’s happening here?  ‘\n‘ looks for a line break.  ‘.‘ is a wildcard that matches a single character.

At the beginning we’re saying “find a line-break followed a couple of characters”  or in other words “find a new line with content”, then replace it with 2 line-breaks and a “<p>“.

For the closing part, we’re saying “find 2 line breaks in a row” and “replace it with a </p> and 2 line breaks”.

Cheat Sheet

Here’s a list of useful expressions you may want to use in your find and replace escapades…

\n
line break
\t
Tab
\d
A digit in the 0-9 range, same as
\D
Not a digit.
\l
A lowercase letter.
NOTE: this will fall back on “a word character” if the “Match case” search option is off.
\L
Not a lower case letter. See note above.
\u
An uppercase letter.
\U
Not an uppercase letter.
\w
A word character, which is a letter, digit or underscore. This appears not to depend on what the Scintilla component considers as word characters. Same as [[:word:]].
\W
Not a word character.
\s
A spacing character: space, EOLs and tabs count.
\S
Not a space.
\h
Horizontal spacing. This only matches space, tab and line feed.
\H
Not horizontal whitespace.
\v
Vertical whitespace.
\V
Not vertical whitespace
$
Only applies to character at the end of a line. (ex. ‘!$’ would replace all explamation points at the end of a line.)
^
Online applies to character at the beginning of a line (ex. ‘^<p>’ would replace any ‘<p>’ at the beginning of a line.)

Online Tools as an Alternative

Sometimes expressions can be a little hard to figure out.  If you’re looking for some simple online tools, you might try textmechanic.comdiffchecker.com, and titlecase.com.

Check for differences between to sets of text

The other day, I wanted to check for differences between 2 websites.  I had a WordPress theme that I knew I’d made some changes to, but I couldn’t remember exactly what they were.

I found a useful website called https://www.diffchecker.com that let me copy and paste the code for the two sites and highlighted the differences for me.

Easily spot differences in two sets of text.
DiffChecker.com quickly identified the changes I’d made between documents.

Changing All Caps to Titlecase

I frequently get text from clients in ALL CAPS, and I may want to change to Title Case or sentence case without having to retype it. TitleCase.com will convert your text to Title Case, UPPERCASE, lowercase, or Sentence case.

It will even do programming specific conversions like camelCase, PascalCase, hyphen-case, or snake_case. Pretty useful!

No Comments

Leave a Reply

Your email address will not be published. Required fields are marked *