Regex 否定正则表达式

Regex 否定正则表达式,regex,regex-negation,Regex,Regex Negation,如何对regex进行否定[a-zA-Z]+[0-9]*?i、 e.从字符串“12-mar-14,21,123_4,Value123,USER,12/2/13”我需要匹配除Value123和USER以外的任何值。有人能解释一下怎么做吗 我正在尝试将Java中的字符串“12-mar-1421123\u4,Value123,USER,12/2/13”替换为“%Value123%USER%”。任何与[a-zA-Z]+[0-9]*不匹配的内容都应替换为% 为相应输入提供以下输出的正则表达式 输入:“12-

如何对regex进行否定
[a-zA-Z]+[0-9]*
?i、 e.从字符串“
12-mar-14,21,123_4,Value123,USER,12/2/13”
我需要匹配除
Value123
USER
以外的任何值。有人能解释一下怎么做吗

我正在尝试将Java中的字符串“
12-mar-1421123\u4,Value123,USER,12/2/13”替换为
“%Value123%USER%”
。任何与
[a-zA-Z]+[0-9]*
不匹配的内容都应替换为
%

为相应输入提供以下输出的正则表达式

输入:“
12-mar-14,21123\u 4,Value123,USER,12/2/13”

输出:
“%Value123%USER%”

输入:
'2014年3月12日、2011年3月21日、123日'

输出:
'%'

输入:
“新建,2014年3月12日,第123页,数据123页”

输出:
“%New%Data123%”
使用以下方法:

//********** 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);
}
输出:

%New%Data123%
%Value123%USER%

背景是什么?什么语言?解释了一下我的要求。为什么不保留
mar
?它匹配
[a-zA-Z]+[0-9]*
mar后面跟一个“-”。我认为这不符合
[a-zA-Z]+[0-9]*
。我想我一定是错了。”[[0-9]+-[1月| 2月| 3月| 4月| 6月| 8月| 9月| 10月| 11月| 12日)-[0-9]+[code>[a-zA-Z]+[0-9]*
|$^-突出显示的部分是我试图否定的部分。Value123和用户用于说明。如果输入为“123,12-Mar-14”,则输出需要为“%”;如果输入为“123,12-Mar-14,newValue”,则输出需要为“%newValue%”,而123,12-Mar-14则没有匹配项。所以我不知道我是否理解你!!你不需要那个输出??输出:%Value123%USER%又添加了一些插图。请使用@zephyrus(答案已修改!!)的方法。此方法非常有效。但我现在也有同样的疑问,就像@M42<代码>'Mar'
'Mar'
匹配
[a-zA-Z]+[0-9]*
。但是它没有显示在输出中。怎么样?
%New%Data123%
%Value123%USER%