一个正则表达示问题
在一篇文档中有很多书名号构成的书籍如:
《电脑杂志》,1985年。《战争论中文版(删除)》
《飘》,《美国丽人》,《高一数学(已删除)》。《VB2008(删除)》
《动物图鉴》,2011年版。《人生》,路遥。《孙子兵法(已删除)》
《远方(1)》
……
我想写一个正则表达式,只将其中除《高一数学(已删除)》这种格式的书(有“已删除”字样)不包括进来,但写出来的代码执行后,除达到目的外,《战争论中文版(删除)》、《VB2008(删除)》、《远方(1)》也不能正常显示出来,请问怎么改?
代码:《[^《]+?((?!已删除)\w+)》
[解决办法]
string str = @"《电脑杂志》,1985年。《战争论中文版(删除)》
《飘》,《美国丽人》,《高一数学(已删除)》。《VB2008(删除)》
《动物图鉴》,2011年版。《人生》,路遥。《孙子兵法(已删除)》
《远方(1)》";
var ary = Regex.Matches(str, "《((?!删除)[^》])+》").OfType<Match>().Select(t => t.Value).ToArray();