Regex 否定正则表达式
如何对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-
[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%