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>)";