Regex 屏蔽除最后四位以外的所有数字
我必须在日志文件中屏蔽feild的值,直到最后四位。问题是数字的长度没有固定。它可以是16位或更多 比如说 extntino=“1234567891234567” 正则表达式=(extntino=)([“][^”]\d{12})Regex 屏蔽除最后四位以外的所有数字,regex,Regex,我必须在日志文件中屏蔽feild的值,直到最后四位。问题是数字的长度没有固定。它可以是16位或更多 比如说 extntino=“1234567891234567” 正则表达式=(extntino=)([“][^”]\d{12}) 它工作正常,但当它超过16位时,无掩码数字将超过4位。此外,如果有空格b/w feild、=和value,它将失败这将捕获您想要的内容: (ExtnTinNo=)(["'][^"']*?)\d{4}["'] 我不确定你到底应该在小组中捕获什么,所以我把它们保留在原来的
它工作正常,但当它超过16位时,无掩码数字将超过4位。此外,如果有空格b/w feild、=和value,它将失败这将捕获您想要的内容:
(ExtnTinNo=)(["'][^"']*?)\d{4}["']
我不确定你到底应该在小组中捕获什么,所以我把它们保留在原来的正则表达式中。第1组匹配“extntino=”,第2组匹配引号,后跟要屏蔽的数字
细分:
(extntino=)
显然匹配extntino=
\d{4}[“]
匹配结束“或”之前的最后4位数字
([“][^”]*?)
匹配介于两者之间的所有内容,即“或”后跟要屏蔽的数字这应该捕获您想要的内容:
(ExtnTinNo=)(["'][^"']*?)\d{4}["']
我不确定您应该在组中捕获什么,因此我将它们保留在原始正则表达式中。组1匹配“extntino=”,组2匹配引号,后跟要屏蔽的数字
细分:
(extntino=)
显然匹配extntino=
\d{4}[“]
匹配结束“或”之前的最后4位数字
([“][^”]*?)
匹配中间的所有内容,即“或”后跟要屏蔽的数字考虑以下正则表达式
(?<=(ExtnTinNo=)(["'][^"']*?))\d{4}(?=["'])
(?考虑以下正则表达式
(?<=(ExtnTinNo=)(["'][^"']*?))\d{4}(?=["'])
(?我假设您希望像这样转换文本:
ExtnTinNo="1234567891234567"
ExtnTinNo="12345678912345678912345"
ExtnTinNo="****4567"
ExtnTinNo="****2345"
对这样的事情:
ExtnTinNo="1234567891234567"
ExtnTinNo="12345678912345678912345"
ExtnTinNo="****4567"
ExtnTinNo="****2345"
如果是这样,您应该尝试以下正则表达式:
(?<=ExtnTinNo=['"])\d{12,}(?=[\d]{4}["'])
通过简单地使用Regex替换,您将得到上面给出的结果
它是这样工作的:
(?<=ExtnTinNo=['"]) - checks that the number is preceded by ExtnTinNo="
(not included in the match)
\d{12,} - matches 12 or more numbers
(?=[\d]{4}["']) - if these 12 numbers are followed by another 4 numbers
and a " or ' (not included in the match)
(请参见,单击“上下文”选项卡以查看替换后的结果)我假设您希望像这样转换文本:
ExtnTinNo="1234567891234567"
ExtnTinNo="12345678912345678912345"
ExtnTinNo="****4567"
ExtnTinNo="****2345"
对这样的事情:
ExtnTinNo="1234567891234567"
ExtnTinNo="12345678912345678912345"
ExtnTinNo="****4567"
ExtnTinNo="****2345"
如果是这样,您应该尝试以下正则表达式:
(?<=ExtnTinNo=['"])\d{12,}(?=[\d]{4}["'])
通过简单地使用Regex替换,您将得到上面给出的结果
它是这样工作的:
(?<=ExtnTinNo=['"]) - checks that the number is preceded by ExtnTinNo="
(not included in the match)
\d{12,} - matches 12 or more numbers
(?=[\d]{4}["']) - if these 12 numbers are followed by another 4 numbers
and a " or ' (not included in the match)
(请参阅,单击“上下文”选项卡查看替换后的结果)您用于此掩蔽的语言/工具是什么?您用于此掩蔽的语言/工具是什么?