Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: RE: RE: RE: FW: Using regex to identify strings with capital letters
From
"Nick Cox" <[email protected]>
To
<[email protected]>
Subject
st: RE: RE: RE: FW: Using regex to identify strings with capital letters
Date
Thu, 27 May 2010 12:44:14 +0100
Martin is correct that -inrange("Er", "AA", "ZZ")- is true. Possibly
this is Erik's specific problem, namely that having the first capital
letter in "A" ... "Z" is necessary but not sufficient.
I offer as a stronger criterion
inrange(substr(myvar,1,1), "A", "Z") & inrange(substr(myvar,2,1), "A",
"Z")
I continue to like regex solutions when they are the simplest available!
Nick
[email protected]
Martin Weiss
Erik does have a point, though, in that Nick`s -inrange()- proposal
seems to
check for the first character only:
***********
di inrange(substr("erik in lower case",1,2) , "AA", "ZZ")
di inrange(substr("Erik in lower case",1,2) , "AA", "ZZ")
***********
BTW, why was -di inrange("erik in lower case", "AA", "ZZ")- a good
example
earlier, even though the -substr()- part was missing?
Nick Cox
Not true of my Stata:
. di inrange("erik in lower case", "AA", "ZZ")
0
I think -- you've heard this before -- we need to see your code and some
of
your results, not your speculation about what might be happening.
Nick
[email protected]
Beecroft, Erik (VDSS)
I tried Nick's suggestion, pasted below, but inrange does not seem to
distinguish between lower and upper case. In other words, the statement
below keeps all observations that begin with two letters, whether
capital or lower case.
Nick Cox
You don't need regex for this.
... if inrange(substr(myvar,1,2), "AA", "ZZ")
should be enough, or even "AK" to "WY" or whatever it is. (Remember this
is an international list!)
From: Beecroft, Erik (VDSS)
I need to extract certain observations from a series of text files.
Each file contains only one variable, which is string. The
observations I want all begin with two capital letters. (They are state
abbreviations, such as VA or AK). The other observations do not begin
with two capital letters.
Is there a way to tell Stata to keep only observations for which the
variable begins with two capital letters?
It seems like the regex function might work, but I have never worked
with regular expression syntax before.
For example, a portion of a text file might look like:
text1
text2
VA department of Social Services
text4
text5
I want to keep only the third observation above.
I am using Stata for Windows 10.1.
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/