Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #11095

Re: Regex doesn't recognize single quote

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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