Difference between revisions of "Remove non-letters from a string"

From CodeCodex

(Visual Basic)
Line 6: Line 6:
 
     return s.replaceAll("[0-9]|[ !@#\\$%\\^&\\*\\(\\)_\\+\\-={}\\|:\"<>\\?\\-=\\[\\];',\\./`~'£€¥]","");
 
     return s.replaceAll("[0-9]|[ !@#\\$%\\^&\\*\\(\\)_\\+\\-={}\\|:\"<>\\?\\-=\\[\\];',\\./`~'£€¥]","");
 
  }
 
  }
 +
 +
===C===
 +
if buff's content is: "15+41-2Hel54lo **1212 Wor2ld! Ho5w Are 6996 Yo7u?" then
 +
the content of buff_02 will be: "HelloWorldHowAreYou"
 +
<HIGHLIGHTSYNTAX language="c">#include <string.h>
 +
 +
while (i != strlen (buff))
 +
{
 +
if ((buff[i] >= 65) && (buff[i] <= 90) || (buff[i] >= 97) && (buff[i] <= 122))
 +
{
 +
buff_02[j] = buff[i];
 +
i++;
 +
j++;
 +
}
 +
else
 +
{
 +
i++;
 +
}
 +
}
 +
</HIGHLIGHTSYNTAX>
  
 
===OCaml===
 
===OCaml===
Line 52: Line 72:
  
 
[[Category:Java]]
 
[[Category:Java]]
 +
[[Category:C]]
 
[[Category:OCaml]]
 
[[Category:OCaml]]
 
[[Category:Perl]]
 
[[Category:Perl]]

Revision as of 23:21, 20 December 2007

Related content:

Implementations

Java

This code removes common symbols and numbers from a string, returning letters only. (Note, not all symbols are included.)

static String lettersOnly(String s) {
   return s.replaceAll("[0-9]|[ !@#\\$%\\^&\\*\\(\\)_\\+\\-={}\\|:\"<>\\?\\-=\\[\\];',\\./`~'£€¥]","");
}

C

if buff's content is: "15+41-2Hel54lo **1212 Wor2ld! Ho5w Are 6996 Yo7u?" then the content of buff_02 will be: "HelloWorldHowAreYou" <HIGHLIGHTSYNTAX language="c">#include <string.h>

while (i != strlen (buff)) { if ((buff[i] >= 65) && (buff[i] <= 90) || (buff[i] >= 97) && (buff[i] <= 122)) { buff_02[j] = buff[i]; i++; j++; } else { i++; } } </HIGHLIGHTSYNTAX>

OCaml

# let remove_nonalpha = Str.global_replace (Str.regexp "[^a-zA-Z]+") "";;
val remove_nonalpha : string -> string = <fun>

For example:

# remove_nonalpha "133t H4x0r";;
- : string = "tHxr"

Perl

<HIGHLIGHTSYNTAX language="perl">

s{[\W\d_]}{}g; # remove all non-word characters and digits and underscores

</HIGHLIGHTSYNTAX>

Python

from string import letters
s = "hello world! how are you? 0"

# Short version
print filter(lambda c: c in letters, s)

# Faster version for long ASCII strings:
id_tab = "".join(map(chr, xrange(256)))
tostrip = "".join(c for c in id_tab if c not in letters)
print s.translate(id_tab, tostrip)

Tcl

proc remove_non_ascii_letters s {regsub -all {[^a-zA-Z]} $s ""}
remove_non_ascii_letters "hello world! how are you? 0é" ;# -> helloworldhowareyou

Visual Basic

Public Function ReturnAlpha(ByVar sString As String) As String
Dim i As Integer
For i = 1 To Len(sString)
    If Mid(sString, i, 1) Like "[A-Za-z]" Then
        ReturnAlpha = ReturnAlpha + Mid(sString, i, 1)
    End If
Next i
End Function