正则表达式匹配不在引号中的关键字

我如何能够查找不在字符串中的kewords。 例如,如果我有文字: 你好,这个文字就是一个例子。 bla bla bla“这个文字在一个字符串里面” “随机字符串”更多文字bla bla bla“foo” 我希望能够匹配不在” “内的所有text 。 在其他我想匹配: 注意我不想匹配红色突出显示的文本,因为它在字符串中 可能的方法: 我一直在努力,这是我到目前为止: (?s)((?”)|text)(?(q).*?”|) 请注意,正则表达式使用if语句:(?(谓词)true替换| ​​false替代) 所以正则表达式会读: 找到“或文字。如果你找到”然后继续选择,直到你找到“再次(。*?”),如果你找到文字然后什么也不做…… 当我运行该正则表达式时,我匹配整个字符串。 我问这个问题是为了学习。 我知道我可以删除所有字符串然后寻找我需要的东西。

从单独的类库访问web.config?

我正在寻找一种实现以下目标的好方法: 我有一个Web应用程序(MVC 3),它有一个单独的类库,其中包含我正在制作的CMS的后端逻辑。 此CMS使用NHibernate连接到数据库。 我希望用户能够在他们的web.config文件中配置连接字符串(最终甚至是数据库的味道)。 我正在寻找的是从web.config文件获取连接字符串的好方法,即使DLL是完全独立的。 这可能吗? 我是否必须以某种方式将我的连接字符串传递给我的类库? 或者我可以在应用程序运行时访问它吗? 如果我必须在我的Web应用程序中创建一些代码以将连接字符串传递给我的类库,我怎样才能使这段代码尽可能便携,所以我不必再为我的下一个webapp写它? 非常感谢您的任何想法。

CsvHelper没有写任何内存流

我有以下方法: public byte[] WriteCsvWithHeaderToMemory(IEnumerable records) where T : class { using (var memoryStream = new MemoryStream()) using (var streamWriter = new StreamWriter(memoryStream)) using (var csvWriter = new CsvWriter(streamWriter)) { csvWriter.WriteRecords(records); return memoryStream.ToArray(); } } 使用对象列表调用哪个 – 最终来自数据库,但由于某些东西不起作用,我只是填充静态集合。 传递的对象如下: using CsvHelper.Configuration; namespace Application.Models.ViewModels { public class Model { [CsvField(Name = “Field 1”, Ignore = false)] public […]

根据子类从基类指定抽象方法的返回类型

我有以下结构: abstract class Base { public abstract List Get(); //What should be the generic type? } class SubOne : Base { public override List Get() { } } class SubTwo : Base { public override List Get() { } } 我想创建一个抽象方法,返回具体子类的任何类。 因此,从示例中可以看出, SubOne的方法应返回List而SubTwo的方法应返回List 。 我在Base类中声明的签名中指定了什么类型? [UPDATE] 谢谢你发布的答案。 解决方案是使抽象类具有通用性,如下所示: abstract class Base { public abstract List […]

String包含另外两个字符串

如果字符串包含2个或更多单词,是否可以找到包含函数? 这就是我想要做的: string d = “You hit someone for 50 damage”; string a = “damage”; string b = “someone”; string c = “you”; if(d.Contains(b + a)) { Console.WriteLine(” ” + d); Console.ReadLine(); } 当我运行它时,控制台窗口只是快速关闭而不显示任何内容。 另一个问题是:如果我想要添加多少伤害,那么最简单的方法是获取该数字并将其输入TryParse ?

我可以访问内部类中的外部类对象

我有三个这样的课程。 class A { public class innerB { //Do something } public class innerC { //trying to access objB here directly or indirectly over here. //I dont have to create an object of innerB, but to access the object created by A //ie innerB objInnerB = objB; //not like this innerB objInnerB= new innerB(); } […]

不导出成员函数时,从C#调用C ++本机/非托管成员函数

我有一个非托管DLL,只导出一个C风格的工厂方法,它返回一个类的新实例(这里简化为简单)。 hello.h #if defined(HWLIBRARY_EXPORT) // inside DLL # define HWAPI __declspec(dllexport) #else // outside DLL # define HWAPI __declspec(dllimport) #endif struct HelloWorld{ public: virtual void sayHello() = 0; virtual void release() = 0; }; extern “C” HWAPI HelloWorld* GetHW(); HELLO.CPP #include “hello.h” struct HelloWorldImpl : HelloWorld { void sayHello(){ int triv; std::cout<>triv; }; void release(){ […]

使用C#将PDF文件转换为图像

使用C#,我需要将PDF文件的每个页面转换为单独的图像并显示图像。 是否可以在不使用第三方DLL的情况下执行此操作?

在Visual Studio的快递版本中进行TDD的最佳方式(例如VB Express)

我一直在寻找为我正在编写的一个应用程序(OLE对象的OLE包装器)做一些测试驱动开发。 唯一的问题是我正在使用Visual Studio的快速版本(目前),目前我正在使用VB express,但有时我使用C#express。 是否可以在快递版本中进行TDD? 如果是这样的话,那是什么呢? 干杯。 编辑。 根据事物的外观我将不得不购买完整的视觉工作室,以便我可以做集成TDD,希望预算中有钱购买副本:)。 现在我想我会像所有人都说的那样使用Nunit。

为什么在C#中允许“long”作为数组长度?

我想尝试分配一个40亿字节的数组,这是我的C#代码: long size = 4 * 1000; size *= 1000; size *= 1000; byte[] array = new byte[size]; 此代码在包含new的行上的System.OverflowException失败。 好的,结果是Length返回int ,所以数组长度也限制为int可以存储的内容。 那么为什么没有编译时错误,并且允许long作为分配时数组元素的数量?