Sublime Forum

Regex replace changes text casing

#1

I haven’t done any extensive testing, but I was running a replace command where <span>(^<]+)</span> was to be replaced with \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:

<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:

<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 “”. As expected, a work-around is to change the replace string with 6 spaces followed by “\1”: \1.

The result then becomes:

<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>
0 Likes

#2

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…

0 Likes

#3

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.
0 Likes

#4

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.

0 Likes