Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式-从xml中排除空标记_Java_Regex - Fatal编程技术网

Java正则表达式-从xml中排除空标记

Java正则表达式-从xml中排除空标记,java,regex,Java,Regex,假设我有两个xml字符串: 字符串logToSearch=“123456789012” 字符串logToSearch2=“” 字符串logToSearch3=“” 如果标签包含值,我需要一个模式来查找数字标签,也就是说,应该只在logToSearch中找到匹配项 我不是说我在寻找数字本身,而是说matcher.find方法应该只为第一个字符串返回true 现在我有这个: Pattern=Pattern.compile(“”, 模式(不区分大小写); 其中patternString只是“numbe

假设我有两个xml字符串:

字符串logToSearch=“123456789012”

字符串logToSearch2=“”

字符串logToSearch3=“”

如果标签包含值,我需要一个模式来查找数字标签,也就是说,应该只在logToSearch中找到匹配项

我不是说我在寻找数字本身,而是说matcher.find方法应该只为第一个字符串返回true

现在我有这个: Pattern=Pattern.compile(“”, 模式(不区分大小写); 其中patternString只是“number”。我试图添加“].*>,但没有成功,因为在[^/>]中,每个字符都是单独处理的


谢谢

这绝对是解析XML的错误方法。事实上,如果您需要的不仅仅是这里给出的基本示例,那么使用正则表达式无法解决更复杂的情况


使用一个简单的XML解析器,比如。现在,使用xpath,查询元素并过滤没有数据的元素。我只能想象,除非您现在修改您的方法,否则这个问题将成为未来麻烦的前兆。

这绝对是解析XML的错误方法。事实上,如果您需要的不仅仅是这里给出的基本示例,还有可以证明,使用正则表达式无法解决更复杂的情况


使用一个简单的XML解析器,比如。现在,使用xpath,查询元素并过滤没有数据的元素。我只能想象这个问题是未来麻烦的前兆,除非您现在修改您的方法。

因此搜索
“]*>”
将找到开始标记。如果您想确保它不是空的,请尝试
“]*>[^[0-9]“

因此搜索
”]*>“
将找到开头标记。如果要确保它不是空的,请尝试
”]*>[^[0-9]"

XML、HTML或任何解析器比Regex更好的解决方案。XML、HTML或任何解析器比Regex更好的解决方案。别担心,我不想解析XML文件,我只需要从日志文件中删除cc编号。为此,我需要搜索编号所在的标记已存储。我无法搜索号码本身,因为日志文件中还有其他重要号码,可能看起来像卡号(例如会话id)。不用担心,我没有试图解析xml文件,我只需要从日志文件中删除cc编号。为此,我需要搜索存储编号的标记。我无法搜索编号本身,因为日志文件中还有其他重要编号,可能看起来像卡号(例如会话id).投票需要15个声誉,我没有,但我接受了你的答案。再次感谢。好吧,现在你有点接近了。投票需要15个声誉,我没有,但我接受了你的答案。再次感谢。好吧,现在你有点接近了。