Regex 字符串中的正则表达式掩码字符
可能已经有人问过了,但我需要正则表达式模式来替换下面的掩码(结尾前n个字符,长度为m) 类似的内容将让您开始:Regex 字符串中的正则表达式掩码字符,regex,string,replace,str-replace,Regex,String,Replace,Str Replace,可能已经有人问过了,但我需要正则表达式模式来替换下面的掩码(结尾前n个字符,长度为m) 类似的内容将让您开始: .{4}(?=.{3}$) .{2}(?=.{6}$) 这与后跟最后3(6)个字符的任何4(2)个字符相匹配。根据语言的不同,可以根据动态长度进行替换。在PHP中: $n = 3; $m = 4; $string = 'ABCDEFG12345678'; echo preg_replace('/.{' . $m . '}(?=.{' . $n . '}$)/', str_repea
.{4}(?=.{3}$)
.{2}(?=.{6}$)
这与后跟最后3(6)个字符的任何4(2)个字符相匹配。根据语言的不同,可以根据动态长度进行替换。在PHP中:
$n = 3;
$m = 4;
$string = 'ABCDEFG12345678';
echo preg_replace('/.{' . $m . '}(?=.{' . $n . '}$)/', str_repeat('*', $m), $string);
// ABCDEFG1****678
更深入的RegExp解释:
.{4} # matches any 4 characters
(?= # start a "lookahead"
.{3} # matches any 3 characters
$ # matches the end of the string
) # end the "lookahead"
这意味着您将找到任何4个字符后跟3个字符和字符串结尾的内容。Lookaheads不会作为匹配返回,因此您仍将替换匹配的4个字符。什么语言?这对于给出一个完整的答案至关重要。看我的答案,在用JS写了一些东西之后,刚刚看到了你的C#偏好。如果您真的需要一个C#/JS示例,请告诉我,但您真正需要做的就是基于
n
和m
使我的正则表达式动态。
.{4} # matches any 4 characters
(?= # start a "lookahead"
.{3} # matches any 3 characters
$ # matches the end of the string
) # end the "lookahead"