【发布时间】:2013-11-04 19:26:43
【问题描述】:
试图想出一个“简单”的正则表达式来屏蔽看起来可能包含帐号的文本位。
简单的英语:
- 应匹配包含数字的任何单词(或一系列此类单词)
- 保留最后 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
这样的安排可以用正则表达式替换吗?
我认为我需要一些贪婪和前瞻功能,但我在这些领域的经验为零。
【问题讨论】:
-
很抱歉,我看不到问题所在?您得到的错误结果是什么?
-
@Sniffer 我已经根据他的模式添加了实际结果。
-
您的预期结果对吗?
xxxxb456看起来不应该在那里。