Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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 想用正则表达式替换掩码敏感信息******_Java_Regex - Fatal编程技术网

Java 想用正则表达式替换掩码敏感信息******

Java 想用正则表达式替换掩码敏感信息******,java,regex,Java,Regex,例如:9032905776 在上面的正则表达式中,我们需要检查name属性是否有值“XYZ” 如果name属性包含“XYZ”,则应跳过type=“String”并将9032905776屏蔽为*** 预期输出:*** final String expressionTemplate=“(? 问题是,无论我们编写什么正则表达式,都很容易出现它不起作用的情况。想象一下,什么时候可以在type=“string”中找到特殊字符 相反,您应该使用真正的Java HTML解析器(例如,) 但是,如果您不想理会

例如:
9032905776

在上面的正则表达式中,我们需要检查name属性是否有值“XYZ”

如果name属性包含“XYZ”,则应跳过type=“String”并将9032905776屏蔽为***

预期输出:
***

final String expressionTemplate=“(?

问题是,无论我们编写什么正则表达式,都很容易出现它不起作用的情况。想象一下,什么时候可以在
type=“string”
中找到特殊字符

相反,您应该使用真正的Java HTML解析器(例如,)


但是,如果您不想理会我的警告,而想使用一个可以在某些异常输入上轻易中断的正则表达式,那么请尝试以下操作:

final String expressionTemplate = "(?<=<element name=\"XYZ\"[^>]{0,99}>)(.*?)(?=</element>)";
final String expressionTemplate=“(?)(.*?)(=)”;
已知问题:

  • 如果type=“string”中出现
    ,则中断
  • 如果期初标签长度超过规定数量,则会中断(请参阅硬编码
    99

  • 它还有许多其他方法可以打破主题,但是为什么
    expressionTemplate.toString()
    expressionTemplate
    已经是一个
    字符串时呢?同样,这可能是一个启发(和难忘的)阅读。请注意,正则表达式无法解析HTML/XML,需要解析器才能正确解析。如果这样做,在某些情况下会损坏文件。请参阅忽略该expressionTemplate.toString()。是否确定
    标记是唯一需要替换的标记,并且不会在其中嵌套其他标记?String dummy1=”@NamburiManikanta这篇评论的目的是什么?你读过我的回答了吗?
    final String expressionTemplate = "(?<=<element name=\"XYZ\"[^>]{0,99}>)(.*?)(?=</element>)";