Home Download Buy Blog Forum Support

Regex replace changes text casing

Regex replace changes text casing

Postby pbb on Thu Jan 31, 2013 1:41 pm

I haven't done any extensive testing, but I was running a replace command where
Code: Select all
<span>([^<]+)</span>
was to be replaced with
Code: Select all
\1
. In other words, HTML "span" tags surrounding plain text should be removed.

After running this command, I noticed various places in the text where uppercase letters had been replaced with lowercase, while at other places lowercase letters had been replaced with uppercase.

For example, before:
Code: Select all
<p><span>Her kan du lese om hvordan Hamar, Skien, Drammen og Ringerike jobber med arkitektur og estetikk lokalt og hvordan Svelvik, som har gitt innspill til medvirkning, bruker dette virkemiddelet i sin kommune. Plan-og bygningsloven er ikke nok for å fremme kvalitet. Det kreves god kompetanse i kommunen og det må gis rom for idé og virkemiddelutvikling. </span></p>

And after:
Code: Select all
<p>Her kaN du lese om hvordan hamar, skien, drammeN og ringerIke jobber med arkitektur og estetikk lokalt og hvordan svelviK, som har gitt innspill til medvirkning, bruker dette virkemiddelet i sin kommune. plan-oG bygningsloven er ikke nok for å fremme kvalitet. det krEves god kompetanse i kommunen og det må gis rom for idé og virkemiddelutvikling. </p>


Come to think of it, it looks like all uppercasing has been moved 6 characters, exactly the width of the removed string "<span>". As expected, a work-around is to change the replace string with 6 spaces followed by "\1":
Code: Select all
      \1
.

The result then becomes:
Code: Select all
<p>      Her kan du lese om hvordan Hamar, Skien, Drammen og Ringerike jobber med arkitektur og estetikk lokalt og hvordan Svelvik, som har gitt innspill til medvirkning, bruker dette virkemiddelet i sin kommune. Plan-og bygningsloven er ikke nok for å fremme kvalitet. Det kreves god kompetanse i kommunen og det må gis rom for idé og virkemiddelutvikling. </p>
pbb
 
Posts: 2
Joined: Thu Jan 31, 2013 1:27 pm

Re: Regex replace changes text casing

Postby pbb on Thu Jan 31, 2013 1:46 pm

And how can I subscribe to my post? I don't see any button or link that I can click to subscribe to new replies received...
pbb
 
Posts: 2
Joined: Thu Jan 31, 2013 1:27 pm

Re: Regex replace changes text casing

Postby BUGMENOT! on Tue Apr 08, 2014 1:41 pm

The cause of this is the option "Preserve case".

You can activate/deactivate by two ways:

  1. Ctrl+H and then Alt+A ==> this opens the Find/Replace dialog and then switch the state of "Preserve case"
  2. The icon with an image like "aA" on the left-bottom of the Find/Replace dialog.
BUGMENOT!
 
Posts: 20
Joined: Thu Sep 19, 2013 1:54 pm

Re: Regex replace changes text casing

Postby 902Labs on Thu Oct 02, 2014 1:48 am

This happens to me pretty much when I only tell sublimetext to preserve case. If I leave this option unchecked it doesn't screw it up. With preserve case turned on, camel case vars get screwed up almost 100% of the time when doing regex search/replace.
902Labs
 
Posts: 1
Joined: Thu Oct 02, 2014 1:46 am


Return to Technical Support

Who is online

Users browsing this forum: No registered users and 26 guests