匹配不开始的地方

时间:2014-11-02 22:28:39

标签: c# regex

我目前有以下正则表达式

(?!\(\) => )test\(.*,.*\)

但我只想匹配

test("Test 1", () { expect(1, equals(1)); });

而不是

test(test, () { expect(test, "Test3"); }) )

来自以下文字

import 'package:unittest/unittest.dart';

main() {

  testExecuter("fileName", test, () => $0 );
  test("Test 1", () { expect(1, equals(1)); });

  var tests = ["Test2", "Test3"];

  for (var test in tests) {
    testExecuter("fileName", test, () => test(test, () { expect(test, "Test3"); }) );
  }
}

我正在使用regexpal.com测试它,因为某些原因正则表达式的部分说不以()=>开头不工作

1 个答案:

答案 0 :(得分:1)

当你应该使用 lookbehind 断言时,你正在使用 lookahead 断言:

(?<!\(\) => )test\(.*,.*\)

毕竟,"test(test, ()..."确实不会 "() => "开头 - 它是之前的,因此你需要看到“落后“目前的位置。