如何用正则表达式过滤除数字以外的其他字符?
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*$)
通过在第二个捕获组中不允许使用空格,它不会太早匹配数字17
或545
。
编辑:在your own demo上看到更详细的示例列表后,以下正则表达式将与您的测试用例的完整集合匹配:
(?<street>[\S \t]+?) ?(?<number>\d[\d\w-\/ ]*?$)
另一答案
我自己找到了一个答案:
我自己https://regex101.com/r/2WT48R/6
以上是关于如何用正则表达式过滤除数字以外的其他字符?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用正则表达式 python3 替换除空格和换行符旁边的数字以外的所有其他符号