Well, you didn't tell me what editor you're using and what specific version of RegEx it uses. For more simple RegEx system, I would search for:
Code: Select all
\(title\s*=\s*{[^}\.]*\.\s*\)\([A-Z]\)
And replace with:
So in Vim for example, the command would be:
Code: Select all
:%s/\(title\s*=\s*{[^}\.]*\.\s*\)\([A-Z]\)/\1{\2}/
I think the same could be used with sed from the commandline on Unix-type systems (or, I guess, with
sed for Windows):
Code: Select all
sed 's/\(title\s*=\s*{[^}\.]*\.\s*\)\([A-Z]\)/\1{\2}/' input.bib > output.bib
But if your editor uses perl-compatible or extended Regular Expressions instead, I think this would need to be changed... to search for:
Code: Select all
(title\s*=\s*\{[^\}\.]*\.\s*)([A-Z])
and replace with:
So you could use:
Code: Select all
perl -pe 's/(title\s*=\s*\{[^\}\.]*\.\s*)([A-Z])/\1\{\2\}/' input.bib > output.bib
From the command line.
All of the above assumes your entries look like:
And not:
or
And that TITLE is not in all caps, etc., so it would really help to know what program you're using, exactly how it is formatted now, etc.
And FWIW, the change case function you mentioned is something built in to the .bst file. Not all .bst affect the case of titles.