regex - How to change all title attribute's value in Title Case in sublime text -
i have 500 html files in project casing , quotes ("
or '
) in <title>
attribute vary on pages, see few examples below
<button title="next" id="next"> next</button> <button title="next"> next </buton> <button title=""please go back">check</button>
i want change title attributes in title case
<button title="next" id="next"> next</button> <button title="next"> next </buton> <button title="please go back">check</button>#
i have tried find , replace - regular expression , case sensitive button enabled
find what:
title=(".*")\s
replace with:title="\u$"
but didn't success.please tell me doing wrong?
updated : want remove ' "
see #
to further comment, first it's issue of .*
being 'greedy' instead of 'lazy', meaning matching as possible (i.e. next"> next</button><button title="next
in example).
the quick fix using 'lazy' .*
instead, aka .*?
(i added ?
indicate possible presence of space because there's none in examples):
title=(".*?")\s?
to improve performance, use negated class:
title=("[^"]+")\s?
where [^"]+
matches character except "
.
and cope different quotes, can use:
title=("[^"]+"|'[^']+')\s?
which means either "[^"]+"
or '[^']+'
part within parentheses.
for replace , consecutive quotes issue:
title=(?:"+([^"]+)"+|'+([^']+)'+)\s?
replace with:
title="\u$1$2"
the thing last line <button title="please go back">check</button>
, if that's not issue...
edit: \g
works. use second replace:
(?:(?<=title=")|(?<!^)\g)[^\s"]+\s?
replace with:
\u$0
Comments
Post a Comment