java - 在java中,向具有特定模式的字符串添加掩码的正则表达式是什么

标签 java regex

我正在尝试获取以下字符串:

8374651-37374-19283-284745800
928S-29ED374-872B34-932837
26598TA-297374-CND283-16373
82911-LD391DB-632D-4927831

通过java正则表达式看起来像这样:

XXXXXXX-XXXXX-XXXXX-284745800
XXXX-XXXXXXX-XXXXXX-932837
XXXXXXX-XXXXXX-XXXXXX-16373
XXXXX-XXXXXXX-XXXX-4927831

并且每个连字符之间的字符串长度没有模式。

用 X 替换除连字符之外的所有内容可能很容易,但对我来说很难排除最后一部分。

最佳答案

使用string.replaceAll函数。

string.replaceAll("[^-\\n](?=.*?-)", "X");

这匹配后面跟有连字符的所有字符(但不是连字符)。它不会匹配最后一部分,因为它后面没有连字符。

DEMO

关于java - 在java中,向具有特定模式的字符串添加掩码的正则表达式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29126652/

相关文章:

java - applicationContext.xml 中 bean 的声明

java - 创建多种类型的 jpa 实体

java - Tomcat - 如何使用 PersistentManager + FileStore 将 session 立即保存到磁盘

php - preg_replace_callback 突出显示模式在结果中不匹配

java - 如何以最低余额费用转账

java - recyclerview 中的图像在滚动时不可见

c# - 用正则表达式解析key=value

python - 简化正则表达式

regex - spring 安全过滤器链正则表达式模式

regex - Notepad++ 删除第三个分号之前的所有内容