试图提出一个“简单”的正则表达式来屏蔽看起来可能包含帐号的文本位。
用简单的英语:
- 任何包含数字的单词(或一串这样的单词)都应该匹配
- 保留最后 4 位数字不变
- 用四个 X (xxxx) 替换匹配字符串的所有先前部分
至今
我正在使用以下内容:
[\-0-9 ]+(?<m1>[\-0-9]{4})
替换为
xxxx${m1}
但这错过了下面的最后几个样本
样本数据:
123456789
a123b456
a1234b5678
a1234 b5678
111 22 3333
this is a a1234 b5678 test string
实际结果
xxxx6789
a123b456
a1234b5678
a1234 b5678
xxxx3333
this is a a1234 b5678 test string
预期成绩
xxxx6789
xxxxb456
xxxx5678
xxxx5678
xxxx3333
this is a xxxx5678 test string
用正则表达式替换这样的安排是否可行?
我认为我将需要一些贪婪和前瞻功能,但我在这些领域的经验为零。