如何用正则表达式过滤除数字以外的其他字符?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用正则表达式过滤除数字以外的其他字符?相关的知识,希望对你有一定的参考价值。

如<a href="../download/20080601.pdf">成交表下载</a> 过滤后 剩下“20080601”。

参考技术A <a.*?>|</a>

直接把匹配这个的replace空就ok
匹配结果如下图
参考技术B [^0-9]
Regex.Replace("<a href="../download/20080601.pdf">成交表下载</a>"," [^0-9] ");
这是 c#
代码
参考技术C JAVA可以这样写呢
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class JavaBase

public static void main(String[] args)
String str = "<a href=\"../download/20080601.pdf\">download</a>";

String regEx = "[^0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);

String str1 = m.replaceAll("").trim();

System.out.println(str1);



-------------
20080601本回答被提问者采纳

如何用数字对正则表达式德国街道地址(中缀)

我有这两个地址:

Straße des 17 Juni 122a
Str. 545 3

请参见https://regex101.com/r/2WT48R/5

我需要过滤街道和号码。

我想要的输出是:

streets = [Straße des, Str. ]
numbers = [17 Juni 122a, 545 3]

这是我的正则表达式:

(?<street>[\S ]+?)\s*(?<number>\d+[\w\s\/-]*)$

输出应类似于:

streets = [Straße des 17 Juni, Str. 545]
numbers = [122a, 3]
答案

看起来正则表达式的“数字”部分没有空格-您可以使用它来消除卡在第二个捕获组中的多余字符。

(?<street>[\S ]+)\s(?<number>\d+\S*$)

通过在第二个捕获组中不允许使用空格,它不会太早匹配数字17545

Demo

编辑:在your own demo上看到更详细的示例列表后,以下正则表达式将与您的测试用例的完整集合匹配:

(?<street>[\S \t]+?) ?(?<number>\d[\d\w-\/ ]*?$)

Demo

另一答案

我自己找到了一个答案:

我自己https://regex101.com/r/2WT48R/6

以上是关于如何用正则表达式过滤除数字以外的其他字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何用正则表达式验证用户名

正则表达式简单小结

如何使用正则表达式 python3 替换除空格和换行符旁边的数字以外的所有其他符号

java中,正则表达式,如何过滤除数字和字母之外的其它字符??

正则表达式 换行符

使用正则表达式过滤文本