Tag: regex greedy

java – 正则表达式使用空格分割字符串但不考虑双引号或单引号

我想使用空格拆分字符串,但不考虑双引号或单引号。 我没有尝试使用Regex在没有单引号或双引号的情况下使用空格分割字符串,但在某些情况下它失败了。 Input : It is a “beautiful day”‘but i’ cannot “see it” 输出应该是 It is a “beautiful day”‘but i’ cannot “see it” 上面链接中的正则表达式导致了 It is a “beautiful day” ‘but i’ cannot “see it” 我想要”beautiful day”‘but i’在一条线上。 有人可以帮我写正确的正则表达式吗?

Java Regex – Ilegal Repetition字符

我的正则表达式是 (?:–|#|\/\*|{) 当我使用Java中的Pattern.complie()编译它时,我得到* 非法重复字符* 我测试了这个正则表达式 (a|\/\*|b) 当我编译它时,它显示没有错误。 为什么会这样?

正则表达式操作的优先级

我写了一些java代码将字符串拆分为字符串数组。 首先,我使用正则表达式模式”\\,\\,|\\,”拆分该字符串,然后使用模式”\\,|\\,\\,”拆分。 为什么第一个输出和第二个输出之间有区别? public class Test2 { public static void main(String[] args){ String regex1 = “\\,\\,|\\,”; String regex2 = “\\,|\\,\\,”; String a = “20140608,FT141590Z0LL,0608103611018634TCKJ3301000000018667,3000054789,IDR1742630000001,80507,1000,6012,TCKJ3301,6.00E+12,ID0010015,WADORI PURWANTO,,3000054789”; String ss[] = a.split(regex1); int index = 0; for(String m : ss){ System.out.println((index++)+ “: “+m+”|”); } } } 使用regex1时的输出: 0: 20140608| 1: FT141590Z0LL| 2: 0608103611018634TCKJ3301000000018667| 3: 3000054789| 4: IDR1742630000001| 5: […]

正则表达式中的奇怪行为

有一个关于正则表达式的问题并试图回答我发现了另一个奇怪的事情。 String x = “X”; System.out.println(x.replaceAll(“X*”, “Y”)); 这打印YY。 为什么?? String x = “X”; System.out.println(x.replaceAll(“X*?”, “Y”)); 这打印YXY 为什么不情愿的正则表达式与’X’字符不匹配? 有”noting”X”nothing”但为什么首先不匹配三个符号并匹配两个然后一个而不是三个? 和第二个正则表达式只匹配”nothing”而不是X ?