Remove non-letters from a string
From CodeCodex
| Image:Lightbulb.png Related content: |
| <DPL>
category=String shownamespace=false </DPL> |
Contents |
[edit] Implementations
[edit] 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("[^a-zA-Z]","");
}
[edit] C
if buff's content is: "15+41-2Hel54lo **1212 Wor2ld! Ho5w Are 6996 Yo7u?" then the content of buff_02 will be: "HelloWorldHowAreYou"
#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++;
}
}
[edit] JavaScript
var s = "how19 a*re 254y**ou?"; document.write(s.replace(/[^A-Za-z]/g, ""));
[edit] 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"
[edit] Perl
s{[\W\d_]}{}g; # remove all non-word characters and digits and underscores
[edit] PHP
$result = preg_replace('/[^A-Za-z]/', '', $string);
[edit] Python
s = "hello world! how are you? 0"
# Short version
print filter(lambda c: c.isalpha(), s)
# Faster version for long ASCII strings:
id_tab = "".join(map(chr, xrange(256)))
tostrip = "".join(c for c in id_tab if c.isalpha())
print s.translate(id_tab, tostrip)
# Using regular expressions
print re.sub("[^A-Za-z]", "", s)
[edit] Tcl
proc remove_non_ascii_letters s {regsub -all {[^a-zA-Z]} $s ""}
remove_non_ascii_letters "hello world! how are you? 0é" ;# -> helloworldhowareyou
[edit] 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
[edit] WinBatch
; Remove non-letters from a string, assuming space as non-letter character.
strString = "15+41-2Hel54lo **1212 Wor2ld! Ho5w Are 6996 Yo7u?"
; Example 1
strClean1 = StrClean (strString, "0123456789+-*/!?.,;:~@ ", "", @TRUE, 1)
; strClean1 = "HelloWorldHowAreYou"
; Example 2
strClean2 = StrClean (strString, "abcdefghijklmnopqrstuvwxyz", "", @FALSE, 2)
; strClean2 = "HelloWorldHowAreYou"
; Example 3
objRegExp = ObjectCreate ("VBScript.RegExp")
objRegExp.IgnoreCase = @TRUE
objRegExp.MultiLine = @FALSE
objRegExp.Global = @TRUE
objRegExp.Pattern = "[^a-z]"
strClean3 = objRegExp.Replace(strString, "")
objRegExp = 0
; strClean3 = "HelloWorldHowAreYou"
Exit
; This code example was written by Detlev Dalitz.
[edit] Zsh
s="Hello, World! How are you? 1... 2... 3..."
print "${s//[^a-zA-Z]/}"
Categories: Java | C | JavaScript | Objective Caml | Perl | PHP | Python | Tcl | String | Visual Basic | WinBatch | Zsh

