把一个字符串里的所有数字去掉.只留下字母

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了把一个字符串里的所有数字去掉.只留下字母相关的知识,希望对你有一定的参考价值。

以BASIC语言为例,代码如下:

Function NumberDroping
STRLength=len(STR_Main)

For i = 1 to STRLength
Var_ASC =Asc(Mid(STR_Main,i,1)) '检查每一位字符的ASCII码。
If Var_ASC >47 or Var_ASC <58 Then '判断截取的字符如果是数字执行下面代码。
STR_Main =Left(STR_Main,i-1) & Mid(STR_Main,i+1,STRLength-i+1) '操作字符串去掉数字
STRLength =STRLength -1 '去掉数字后,让字符串的长度减1,避免空循环。

End if
Next i
End Function追问

不好意思,没有说明 是java语言

追答

楼上几个全是做网页的,用JАVA SCRIPT的,编程基础不强,所以那种思想不要学!

写代码是要让人容易看懂,要规范化,要有可读性!这是学编程语言的重点,除了THINKING(思想)以外的就是这些了。最重要的当然是一门编程语言的THINKING(思想)和构架!

数字去掉,只留字母,JАVA代码如下:

public static void main(String[] args)
String strmain;
String strmain = strmain.replaceAll("[\\d]+", "");
System.out.println(strmain);


replaceAll("","")是用替换字符的方法,("前面是替换的条件","后面是替换成什么")
[\\d+]d是0-9的数字,+说明数字不止出现一次。
附带说明一点,用匹配符会大大的降低效率……

参考技术A $str = preg_replace("/\d/i",'',$str);
顶下
参考技术B $str = preg_replace("/\d/i",'',$str); 参考技术C string str = "1a2b3c4d56efg";
str = Regex.Replace(str, @"[^a-zA-Z]+", "");

函数只返回字符串中的字母数字字符?

【中文标题】函数只返回字符串中的字母数字字符?【英文标题】:Function to return only alpha-numeric characters from string? 【发布时间】:2011-07-09 02:53:06 【问题描述】:

我需要第二个功能相同但只返回字母字符 A-Z。

非常感谢任何帮助。

【问题讨论】:

这些在哪个 Unicode 规范化形式中,您为什么要这样做? 当您说 A-Z 和“字母数字”时,您的意思是真的只有 A-Z 还是要匹配所有语言的所有字母,包括外语和过时的脚本? 如果您这样做是为了进行不区分重音的字符串比较,那么您做错了。 只是“来自所有语言”。是英文的。英语使用拉丁文字。有unichars '\pLatin' '\pAlphabetic' '[^A-Za-z]' | wc -l == 1192 个拉丁字母但不是 A-Z 的代码点。人们普遍认为 ASCII 对英语来说就足够了。不是,这就是为什么写 A-Z 有一种代码味道的原因。 @Scott B:英语不仅仅使用 A-Z 的 26 个字母。例如,单词 ressumé 包括 é。也许您可以解释一下您要做什么,因为这可能会帮助您获得更好的答案。 【参考方案1】:

警告:请注意,英语不仅限于 A-Z。

尝试this 删除除 a-z、A-Z 和 0-9 之外的所有内容:

$result = preg_replace("/[^a-zA-Z0-9]+/", "", $s);

如果您对字母数字的定义包括外语字母和过时的脚本,那么您将需要使用 Unicode 字符类。

尝试this 只留下 A-Z:

$result = preg_replace("/[^A-Z]+/", "", $s);

警告的原因是像 résumé 这样的词包含字母 é 不会被匹配。如果要匹配特定的字母列表,请调整正则表达式以包含这些字母。如果要匹配所有字母,请使用 cmets 中提到的相应字符类。

【讨论】:

不,字母数字是 [\pAlphabetic\pNumeric]。我忘记了 PCRE 字母属性,但你可以用 [\pL\pM\pN] 来近似它。 @tchrist:我认为因为他特别提到了 A-Z,所以他只想匹配那个,尽管我承认这个问题在这一点上可能会更清楚。我会要求澄清。 @Mark,我并没有与你答案的第二部分争论,尽管如果他没有先规范地分解字符串,它就不会正常工作。我在和第一部分争论。此外,我尝试始终正确处理 any 数据的正则表达式,而不仅仅是发霉的旧 ASCII。 :) 因此,千禧年的这一边,[A-Z] 总是错的,有时 @Mark Byers,我明白了……是的,我更喜欢i,但我只需要担心英语人口统计……我忘记了很多人必须考虑其他语言。顺便说一句,我刚刚注意到您是从未问过 1 个问题的最高代表用户。甚至 Jon Skeet 也曾问过问题! 为什么正则表达式的末尾有一个+?如果你删除它,它会不会......一样吗?【参考方案2】:

除了preg_replace,您始终可以通过filter_var() 函数与FILTER_SANITIZE_STRING 一起使用PHP's filter functions。

【讨论】:

PHP 是否可以访问 ISO Stringprep 算法?我知道 Perl 和 Java 可以。 我相信字符串过滤功能主要适用于 7 位 ASCII,但不要引用我的话。 拜托,您能告诉我们使用FILTER_SANITIZE_STRING 执行用户要求的明确方式吗?据我所知,可以通过这种方式归档的最接近的是FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH,但这不仅会留下字母和数字,还会留下点、斜线、百分比等等。 它看起来更像是评论而不是答案。写答案时给出适当的解释。 不幸的是,我不相信那里有一个实际的 FILTER_SANITIZE 到字母数字。相当大的遗漏。

以上是关于把一个字符串里的所有数字去掉.只留下字母的主要内容,如果未能解决你的问题,请参考以下文章

只去掉字符串中最左边的字母,只去掉左边的字母

oracle 去掉字符,剩下数字

去掉字符串最右边的数字或字母

高手进:asp怎么把文本过滤汉字,字母后只留下数字

如何用js把字符串中的字母和数字拆分开?

怎么用JS把特定字符串重复的字符删除留下一个