如何否定正则表达式[a-zA-Z]+[0-9]*
?即,从字符串“12-mar-14, 21, 123_4, Value123, USER, 12/2/13'
开始,我需要匹配Value123
和USER
以外的值。有人可以解释一下吗?
我正在尝试将Java中的字符串'12-mar-14, 21, 123_4, Value123, USER, 12/2/13'
替换为'%Value123%USER%'
。任何与[a-zA-Z]+[0-9]*
不匹配的内容都应替换为%
一个正则表达式,它会为相应的输入提供以下输出。
输入:'12-mar-14, 21, 123_4, Value123, USER, 12/2/13'
输出:'%Value123%USER%'
输入:'12-mar-14, 21, 123_4'
输出:'%'
输入:'New, 12-Mar-14, 123, dat_123, Data123'
输出:'%New%Data123%'
答案 0 :(得分:1)
使用此方法:
//********** MODIFIED *************//
public static void getSentence(String line) {
String text[] = line.split(",");
String res = "";
for (int i = 0; i < text.length; i++) {
String word = text[i].trim();
if (word.matches("[a-zA-Z]+[0-9]*")){
if (!"".equals(res))
res = res + "%";
res = res + word;
}
}
if ("".equals(res))
res = "%";
else
res = "%" + res + "%";
System.out.println(res);
}
...
this.getSentence("New, 12-Mar-14, 123, dat_123, Data123");
this.getSentence("12-mar-14, 21, 123_4, Value123, USER, 12/2/13");
输出:
%New%Data123%
%Value123%USER%