Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #11095
| From | Rafael Villar <morgano5@hotmail.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Regex doesn't recognize single quote |
| Date | 2012-01-08 09:05 +1000 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <jeaj4f$2dm$1@speranza.aioe.org> (permalink) |
| References | <74f4b448-24bf-448f-9f4a-06fd1b79c86d@o12g2000vbd.googlegroups.com> <prmfg79jlt8o86otpnabqfs924cc399var@4ax.com> <bloat-20120107123558@ram.dialup.fu-berlin.de> <tphhg71jbmq4q2vj5dtno5r01igvgdavh2@4ax.com> |
On 08/01/12 08:41, Roedy Green wrote:
> On 7 Jan 2012 11:42:26 GMT, ram@zedat.fu-berlin.de (Stefan Ram) wrote,
> quoted or indirectly quoted someone who said :
>
>>> That is not what a regex is for.
>>
>> How do you know what it is for?
>
> Regexes are for searching for patterns. Transforming or deleting
> characters is much simpler done with a for loop.
>
> How do I know what a regex is for? I am familiar with the API. I have
> attempted to use them for various purposes and discovered they were
> suitable for some and not for others.
>>
>>> Just use a StringBuilder the length of your String. Then
>>> loop through the chars with charAt. If the character is a
>>> ' or \w, ignore it, else append. If it gets complex, use a
>>> switch or if it gets really complicated use a BitSet.
>>
>> This might be needless (as far as we know right now)
>> optimization bloating the code reducing its readability and
>> low-level thinking, which might be required sometimes, but
>> does not serve as a general rule. Still it is nice to know
>> how it could be done if required.
>
> What is your simpler implementation?
>
> /** remove ' and \w from string
> * @param s string to process
> * @return string without ' or \w
> */
> private static String scrunch( final String s )
> {
> final Stringbuilder sb = new StringBuilder( s.length() );
> for (int i=0; i<s.length(); i++ )
> {
> char c = s.charAt(i);
> if ( !( c = '\'' || c = '\w' ) )
> {
> sb.append ( c );
> }
> }
> return sb.toString();
> }
In most cases is better to use a StringBuilder to perform replacements,
but in this particular case String.replaceAll() is better. By the way,
the escape sequence \w is not a java regular escape sequence but belongs
to the pattern syntax (although you should already know about it, as you
say you are familiar with the API).
Anyway a simpler implementation (and one which works, because yours
doesn't):
/** remove ' and \w from string
* @param s string to process
* @return string without ' or \w
*/
private static String scrunch( final String s ) {
return s.replaceAll("[^'\\w]+", "");
}
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Regex doesn't recognize single quote Jerric <jerricgao@gmail.com> - 2012-01-06 14:08 -0800
Re: Regex doesn't recognize single quote Martin Gregorie <martin@address-in-sig.invalid> - 2012-01-06 22:23 +0000
Re: Regex doesn't recognize single quote Jake Jarvis <pig_in_shoes@yahoo.com> - 2012-01-06 23:48 +0100
Re: Regex doesn't recognize single quote Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-01-06 15:49 -0800
Re: Regex doesn't recognize single quote Jim Janney <jjanney@shell.xmission.com> - 2012-01-07 19:02 -0700
Re: Regex doesn't recognize single quote Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-01-09 09:58 -0800
Re: Regex doesn't recognize single quote Roedy Green <see_website@mindprod.com.invalid> - 2012-01-06 21:47 -0800
Re: Regex doesn't recognize single quote Roedy Green <see_website@mindprod.com.invalid> - 2012-01-07 14:41 -0800
Re: Regex doesn't recognize single quote Rafael Villar <morgano5@hotmail.com> - 2012-01-08 09:05 +1000
Re: Regex doesn't recognize single quote Rafael Villar <morgano5@hotmail.com> - 2012-01-08 09:10 +1000
Re: Regex doesn't recognize single quote Lew <noone@lewscanon.com> - 2012-01-07 17:20 -0800
Re: Regex doesn't recognize single quote Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-01-09 10:08 -0800
Re: Regex doesn't recognize single quote Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-01-09 10:33 -0800
Re: Regex doesn't recognize single quote Roedy Green <see_website@mindprod.com.invalid> - 2012-01-07 14:48 -0800
Re: Regex doesn't recognize single quote Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-01-07 20:58 -0400
csiph-web