问题列表 - 第36837页

如何匹配,但不捕获正则表达式的一部分?

我有一个字符串列表.其中一些是形式123-...456.可变部分"......"可以是:

  • 字符串"apple"后跟连字符,例如 123-apple-456
  • 字符串"banana"后跟连字符,例如 123-banana-456
  • 一个空白字符串,例如123-456(注意只有一个连字符)

除"apple"或"banana"之外的任何单词均无效.

对于这三种情况,我想分别匹配"apple","banana"和"".请注意,我从不想捕获连字符,但我总是希望匹配它.如果字符串不是123-...456如上所述的形式,那么根本就没有匹配.

如何编写正则表达式来执行此操作?假设我有一种风格,允许前瞻,后视,环视和非捕获组.


这里的关键观察是,当你有"苹果"或"香蕉"时,你还必须有尾随连字符,但你不想匹配它.当您匹配空白字符串时,您不能使用尾随连字符.我认为,封装这个断言的正则表达式将是正确的.

regex

177
推荐指数
5
解决办法
14万
查看次数

base.Invoke with delegates

我正在调用一个委托,我不知道它是如何工作的,因为它有编译错误(编译器错误CS1660).这是我的代码:

 base.Invoke( delegate {
            bool flag = (((this.layerPickPlaceProcess != null) && (this.robotComponent != null)) && ((((StateEnum) this.layerPickPlaceProcess.State) == StateEnum.Idle) || (((StateEnum) this.layerPickPlaceProcess.State) == StateEnum.Ready))) && ((((StateEnum) this.robotComponent.State) == StateEnum.Idle) || (((StateEnum) this.robotComponent.State) == StateEnum.Ready));
            this.cmdManualPlace.Enabled = flag;
        });
Run Code Online (Sandbox Code Playgroud)

c# reflection

4
推荐指数
1
解决办法
1980
查看次数

CLR对非托管组件的内存管理

我有点困惑,可能这个问题很傻.

为非托管组件分配的内存在哪里?

在我的.net代码中,如果我启动了一个非托管组件,这个组件将被加载并分配内存?

CLR如何在托管堆和非托管堆之间进行调用?

编辑

感谢您的回复,但我要问的是假设我做了一个User32.Dll的DLLIMPORT,这显然是一个非托管的DLL,我现在调用User32.DLL中的一些函数我的问题,CLR如何编组我对这个无人dll的调用?

c#

9
推荐指数
2
解决办法
1865
查看次数

如何最好地将地址与rails中的多个模型相关联?

关于SO的这个问题似乎与我的问题有关,但我不确定我的问题是否得到了回答.

一个地址可以属于多个模型(UserProfile和Event)实现这个的正确方法是什么?

基本表:

user_profiles(id)
events(id)
Run Code Online (Sandbox Code Playgroud)

实现地址表的选项:

  1. addresses(id,user_profile_id,event_id)
    这种方法似乎很糟糕,因为如果明天地址需要属于另一个模型,我必须添加该id字段.
    此外,我还不知道,但添加一个新的id字段可能会导致一些代码中断?

  2. addresses(id,model_type,model_id)
    这是多态的,对吧.我不知道为什么,但我对此感到警惕?

  3. 还有其他方法吗?

注意:

我想我可以制作这样的表格,我想:

user_profiles(id,address_id)
events(id,address_id)
Run Code Online (Sandbox Code Playgroud)

但是,这意味着同样address_id可以属于不同的模型.我想它不应该那样,因为例如说事件的地址需要改变,但它不应该影响地址user_profile.所以这将是这样的(我认为是错误的):

@current_user_profile.address = some_new_address
#this would have changed the address for both the user_profile *and* the event
@current_user_profile.save 
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails

11
推荐指数
2
解决办法
5855
查看次数

JComboBoxes - 使用setModel访问对象(在Swing中)

快速的背景,我正在使用Netbeans开发这个(我没有太多的Swing经验,并且在获得开发速度的机会上失去了经验值).在Netbeans中,显然限制了你可以修改哪些代码来阻止新手用户破解代码(我已经有趣地做过一次)无论如何,我有一类对象,这些对象有一个名称属性.在应用程序中,我直接初始化了这些对象的数组,并称之为"东西";

Objects[] things = new Objects[2];
things[0] = new Objects("The first thing");
things[1] = new Objects("The second thing");
Run Code Online (Sandbox Code Playgroud)

内容和名称是故意愚蠢的,因为这是一个测试,以使这工作(而不是分开一部分书面程序).经过一些研究和阅读后,我发现我"应该"能够使用以下代码将对象加载到setModel参数中;

    new javax.swing.DefaultComboBoxModel(things[].name)
//The above is the code to use within setModel, the below is the completed example
    jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(things[].name));
Run Code Online (Sandbox Code Playgroud)

这没有用,尽管我最努力去谷歌这似乎太具体了,无法确定一个体面的答案.最终的结果是我想拥有; 下拉列表中显示"第一件事"和"第二件事",然后显然我可以在真实程序中通过引用屏幕上该对象中保存的任何其他数据来扩展它.

任何建议甚至指针,以帮助我认为这一点将不胜感激.

java user-interface swing jcombobox

2
推荐指数
1
解决办法
2万
查看次数

在SQL Server中插入媒体文件

亲爱的所有如何在SQL Server中插入媒体文件,如*.mepeg或*.mp3,.....文件

sql-server

0
推荐指数
1
解决办法
3713
查看次数

检查内存转储中所有实例的字段

我有一个内存转储,我用它来解决客户端问题.这是一个.NET(C#)应用程序.我的应用程序的问题是正在创建特定类的太多实例.当应该有类似20的东西时,这个类有6300个实例.我想循环遍历所有这些实例并调用每个实例的名称字段.在WinDbg/SOS中有没有简单的方法呢?

我知道我可以使用!dumpheap -type {typename}来查找该类的所有实例,但我不确定如何将它们全部扩展并查看我感兴趣的字段.

.net debugging windbg sos

6
推荐指数
1
解决办法
3209
查看次数

SVN导出给定变更集的文件名列表

我试图找到一种方法来导出给定变更集中的文件名列表.我可以使用日志消息轻松访问TortoiseSVN中的信息.但是我需要在单独的CM工具中记录哪些文件已经更改(不是选择).

svn

2
推荐指数
1
解决办法
2371
查看次数

如何使用XPath表达式选择所有叶节点?

我相信这是可能的,但无法弄清楚语法.像这样的东西:

xmlNode.SelectNodes("//*[count(child::*) <= 1]")
Run Code Online (Sandbox Code Playgroud)

但这不正确.

syntax xpath selectnodes

41
推荐指数
2
解决办法
2万
查看次数

Javascript/jQuery"Gotchas"

您见过或被绊过的常见Javascript和/或jQuery"陷阱"是什么?

作为一个例子,今天早上我指出你在做的时候必须小心基数parseInt(),因为如果你的字符串以0开头,则基数将默认为8.

javascript jquery

22
推荐指数
5
解决办法
1654
查看次数