Проект должен избегать чувствительных слов при печати журнала в файл,
Я считаю, что первый способ примерно в 2 раза быстрее второго, но я не понимаю, почему это происходит;
Я нахожу единственное различие между вторым способом и первым, что один «заменить» находится в объекте форматирования, а другой - в замене объекта
Пожалуйста, ребята, помогите мне ответить на этот вопрос;
Мой английский слабый, спасибо.
<!-- the first way -->
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %level %l %replace{%m}{([1][3,4,5,7,8][0-9])[0-9]{5}([0-9]{3})|([^\d][1-9]{1})(\d{18}|\d{14}[^\d])|([^\d][1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx][^\d])|([1-9]{1})(\d{18}|\d{15})|(([\u4E00-\u9FA5]+省|[\u4E00-\u9FA5]+市)([\u4E00-\u9FA5]+市|[\u4E00-\u9FA5]+区|[\u4E00-\u9FA5]+区)([\u4E00-\u9FA5]+区|[\u4E00-\u9FA5]+区)?([a-zA-Z0-9\u4E00-\u9FA5]+))|(赵|钱|孙|李|周|吴|郑|王|冯|陈|楮|卫|蒋|沈|韩|杨|朱|秦|尤|许)[\u4E00-\u9FA5]{1,3}}{****}%n " /> -->
<!-- the second way -->
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %level %l %m%n " >
<replace regex="([1][3,4,5,7,8][0-9])[0-9]{5}([0-9]{3})|([^\d][1-9]{1})(\d{18}|\d{14}[^\d])|([^\d][1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx][^\d])|([1-9]{1})(\d{18}|\d{15})|(([\u4E00-\u9FA5]+省|[\u4E00-\u9FA5]+市)([\u4E00-\u9FA5]+市|[\u4E00-\u9FA5]+区|[\u4E00-\u9FA5]+区)([\u4E00-\u9FA5]+区|[\u4E00-\u9FA5]+区)?([a-zA-Z0-9\u4E00-\u9FA5]+))|(赵|钱|孙|李|周|吴|郑|王|冯|陈|楮|卫|蒋|沈|韩|杨|朱|秦|尤|许)[\u4E00-\u9FA5]{1,3}" replacement= "****"/>
</PatternLayout>