你好,我有这个正则表达式模式,我已经在regex101上进行了测试,它可以正常工作。
((der|die|das)\ .*?),.*+\n.*\n(.*?)\n
我在这一行得到了例外:
Regex regex = new Regex(@"((der|die|das)\ .*?),.*+\n.*\n(.*?)\n");
出了什么问题?
答案 0 :(得分:3)
Regex有不同的风格,由不同的正则表达式引擎实现。 Regex101允许您使用PCRE或JavaScript。 .NET实现了自己的正则表达式引擎,具有不同的功能。
在您的情况下,.NET支持possessive quantifier语法// parents
function Parent1() {
this.parent = 'Parent1';
}
function Parent2() {
this.parent = 'Parent2';
}
// child
function Child1() {
Parent1.call(this);
this.child = 'Child1';
}
Child1.prototype = Object.create(Parent1.prototype);
// child method as sub class
Child1.prototype.SubClass1 = function(){
Parent2.call(this);
this.sub_class = 'SubClass1';
};
Child1.prototype.SubClass1.prototype = Object.create(Parent2.prototype);
Child1.prototype.SubClass1.prototype.whoami = function(){
// how to get Child1 reference in this point?
console.log({
parent: this.parent,
child: this.child, // undefined
sub_class: this.sub_class
});
};
var child = new Child1;
var sub = new child.SubClass1;
sub.whoami();
不,但它只是一个语法糖,所以您可以用等效的atomic group:.*+
请注意,此正则表达式中的此特定项目在此处显示可疑,因此可能只需删除(?>.*)
。
答案 1 :(得分:0)
在“ + \ n。”
之后没有+的情况下尝试一下Regex regex = new Regex(@"((der|die|das)\ .*?),.*\n.*\n(.*?)\n");
是嵌套量词
+ The plus sign indicates one or more occurrences of the preceding element.
* The asterisk indicates zero or more occurrences of the preceding element.