In the quest for localization I need to find all the string literals littered amongst our source code. I was looking for a way to script this into a post-modification source repository check. (I.E. after some one checks something in have a box setup to check this stat) I'll probably use NAnt and CruiseControl or something to handle the management of the CVS (Well StarTeam in my case :( ) But do you know of any scriptable (or command line) utility to accurately cycle through source code looking for string literals? I realize I could do simple string look up based on regular expressions but want a little more bang for my buck. (Maybe analyze the string or put it into categories) Because a lot of times the string may not necessarily require translation. Any ideas?
6 Answers
Visual Studio 2010 and earlier:
- Find In Files (CTRL+SHIFT+F)
- Use: Regular Expressions
- Find:
:q
(quoted string) - Find All
Find Results window will now contain a report of all files, with line numbers and the line itself with the quoted string.
For Visual Studio 2012 and later search for ((\".+?\")|('.+?'))
(reference, hat-tip to @CincauHangus)

- 1
- 1

- 31,172
- 10
- 68
- 70
-
4For newer Visual Studio you should use: ((\".+?\")|('.+?')) reference:http://msdn.microsoft.com/en-us/library/vstudio/2k3te2cs(v=vs.110).aspx – CincauHangus Feb 26 '13 at 08:27
-
For a narrower result use: (?<!(<.*|Resource.*|^.*\[.*))(\".+?\") This will eliminate resource files and decorations – Jeff Sep 16 '18 at 16:10
It uses the compiled binary instead of source, but Sysinternals' Strings app might be useful.

- 24,974
- 34
- 121
- 164
- Find In Files (CTRL+SHIFT+F)
- Find options -> Check
Use Regular Expressions
For specific text within the literal:
- Find what:
"+.*(MYSPECIFICTEXT)+.*"+
For all literals
- Find what:
"+.*"+
Then
- Find All

- 21
- 3
To find all Text="textonly"
instances use the following Regular Expression when searching:
(Text=)(")([a-z])
This is help for finding Text="*"
but excluding text that's already been converted to use resource files:
Text="<%$ Resources:LocalizedText, KeyNameFromResourceFile%>"
Also (>)([a-z])
can be used to find literals between tags like so:
<h1>HeaderText</h1>

- 171
- 2
- 12
hi this is regex for searching literals, that I use to find a text for translation. it also includes empty spaces and different quotes
regex:
([",`,'])([\w,\s]*)([",`,'])
searchstring: var test='This is a test';

- 2,887
- 16
- 34

- 325
- 2
- 4