Tag: 匹配器

PatternSyntaxException:在Java中使用正则expression式时非法重复

我不太了解正则expression式,但我需要匹配一个简单的模式。 以下应该返回true, Pattern.matches("{\"user_id\" : [0-9]*}", inputLine) 当inputLine是 {"user_id" : 34} 不过,我得到这个例外: java.util.regex.PatternSyntaxException: Illegal repetition {"user_id" : 24} at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.Pattern.closure(Unknown Source) at java.util.regex.Pattern.sequence(Unknown Source) at java.util.regex.Pattern.expr(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.<init>(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.matches(Unknown Source) at org.whispercomm.manes.server.http.IntegrationTest.createUser(IntegrationTest.java:173) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) […]

为什么这段代码不试图使用Hamcrest的hasItems进行编译?

为什么这不能编译,哦,该怎么办? import static org.junit.Assert.assertThat; import static org.junit.matchers.JUnitMatchers.hasItems; ArrayList<Integer> actual = new ArrayList<Integer>(); ArrayList<Integer> expected = new ArrayList<Integer>(); actual.add(1); expected.add(2); assertThat(actual, hasItems(expected)); 错误从评论复制: cannot find symbol method assertThat(java.util.ArrayList<java.lang.Integer>, org.hamcreset.Matcher<java.lang.Iterable<java.util.ArrayList<java.lang.Integer>>>)

Java正则expression式匹配计数

比方说,我有一个文件,该文件包含这个: HelloxxxHelloxxxHello 我编译一个模式来寻找“你好” Pattern pattern = Pattern.compile("Hello"); 然后,我使用inputstream来读取文件并将其转换为一个string,以便它可以正则expression式。 一旦匹配器在文件中find匹配项,就表示这一点,但它并不告诉我它find了多less匹配项; 只是它在String中find了一个匹配项。 所以,由于string比较短,我使用的缓冲区是200字节,所以应该find三个匹配的string。 然而,它只是说匹配,并没有提供我有多less匹配的计数。 计算string中发生匹配次数的最简单方法是什么? 我已经尝试了各种循环,并使用matcher.groupCount(),但我无法快速。

Hamcrest有多个正确的结果(有没有匹配器?)

对于匹配者,我相对比较陌生。 我正在与JUnit结合使用Hamcrest ,我有点儿喜欢它。 有没有办法说明多种select中的一种是正确的? 就像是 assertThat( result, is( either( 1, or( 2, or( 3 ) ) ) ) ) //does not work in hamcrest 我正在testing的方法返回集合的一个元素。 该列表可能包含多个候选人。 我目前的实现返回第一个命中,但这不是一个要求。 如果任何可能的候选人被退回,我希望我的testing成功。 你怎么用Javaexpression这个呢? (我是开放的hamcrest替代品)

如何在ScalaTest中显示自定义的失败消息?

有谁知道如何在ScalaTest中显示自定义的失败消息? 例如: NumberOfElements() should equal (5) 失败时显示以下消息: 10不等于5 但是我想要更多的描述性信息: NumberOfElements应该是5。

Mockito匹配任何类的参数

有没有办法来匹配下面的例程的任何类参数? class A { public B method(Class<? extends A> a) {} } 我怎么总是返回一个new B()而不pipe哪个类被传入method ? 以下尝试仅适用于A匹配的特定情况。 A a = new A(); B b = new B(); when(a.method(eq(A.class))).thenReturn(b); 编辑 :一个解决scheme是 (Class<?>) any(Class.class)

Mockito:与generics列表匹配

Mockito提供: when(mock.process(Matchers.any(List.class))); 如何避免警告,如果process采取一个List<Bar>而不是?