问题列表 - 第32104页

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

在SQL中双重转义通配符会使转义无效吗?

我有一个有趣的行为,我想更好地理解,所以我不会被误解,偶然误用它.

以下是在WHERE子句中转义'%'的示例:

select * from #z where b like '%e%' ESCAPE 'e'
Run Code Online (Sandbox Code Playgroud)

在此表中包含以下值:

create table #z (a int, b varchar(10))
insert into #z values (1, 'e25%')
insert into #z values (2, '25')
insert into #z values (3, '18%')
insert into #z values (4, 'cab')
insert into #z values (5, '2%')
Run Code Online (Sandbox Code Playgroud)

选择末尾带有%的三行.

但是,如果我like '%e%'like 'ee%'它替换它只选择第一行.因此,看起来双重逃避%就像一个双重否定,并撤消逃逸,从而使%再次回到通配符.我理解正确吗?或者还有其他事情发生在这里?

sql

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

Ruby on Rails表单f.text_area包含额外的空格

我在Rails中有一个非常平均的形式,通过blog_kit

<% form_for(@blog_post, :html => { :multipart => true }) do |f| %>\
  ... other code
  <%= f.text_area :body %>
  <%= debug(@blog_post) %>
Run Code Online (Sandbox Code Playgroud)

在编辑博客文章时,正文突然包含额外的空格(标记为_以显示):

...sit amet eleifend diam imperdiet pharetra.
__ 
__## FOO?
__Morbi nec
Run Code Online (Sandbox Code Playgroud)

因为textarea是空间感知的,它将显示空格.在更新时,它们将添加到数据库中.

这些空间不在数据库中(在上面提到的错误更新之前).BlogPost.find(1)模型也不包含这些空格.

script/console » b = BlogPost.find(1)
» puts b.body
...sit amet eleifend diam imperdiet pharetra.

## FOO?
Morbi nec
Run Code Online (Sandbox Code Playgroud)

在获取数据库之后,但在以局部形式呈现之前,似乎某些逻辑会添加空格.候选人是:

  • BlueCloth.我有启用,但找不到它将挂钩到加载过程的地方,并在textarea中呈现之前更改主体
  • HAML._form.html.rb部分尚未(尚未)迁移到_form.haml,因此我假设haml远离此部分.但它可能是麻烦的一部分?

我不知道从哪里开始寻找,所以任何提示都会非常受欢迎.

ruby-on-rails erb form-helpers bluecloth

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

Autofac - 动态解析带参数的组件

我有一个类接口作为构造函数参数.这个接口有两个实现,我想根据变量决定在运行时使用什么实现.

问题是上面的类是深入一个由Autofac解决的对象层次结构,因此我无法传入参数.

像下面这样的Somehing就是我想要实现的目标.

public interface IInterface1 {}
public interface IInterface2 {}

public class Class1 : IInterface2
{
    public Class1(IInterface1 interface1)
    {
    }
}

public class Class2
{
    public Class2(IInterface2 interface2)
    {
    }
}

public class Class3
{
    public void GetClass2Instance(string interface1ImplementationToChoose)
    {
        // want to change which implementation of IInterface1 is resolved based on the interface1ImplementationToChoose variable
        var class2 = container.Resolve<Class2>();
    }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

更新:

为了澄清,这是一个现有的对象层次结构,现有的应用程序使用它可以正常工作.此外,对象模型比此示例中显示的大得多.因此,我真的不想将工厂传递给对象图中的每个构造函数,以供该图中深层的类使用.

有没有办法让IInterface1的不同实现传递到Class1而没有Class2知道它的任何内容?

谢谢

c# autofac

5
推荐指数
1
解决办法
4930
查看次数

正则表达式解析 C/C++ 函数声明

我需要将 C 和 C++ 函数解析和拆分为主要组件(返回类型、函数名称/类和方法、参数等)。

我正在使用标题或签名采用以下形式的列表:

公共:void __thiscall myClass::method(int, class myOtherClass * )

我有以下正则表达式,适用于大多数功能:

(?<expo>public\:|protected\:|private\:) (?<ret>(const )*(void|int|unsigned int|long|unsigned long|float|double|(class .*)|(enum .*))) (?<decl>__thiscall|__cdecl|__stdcall|__fastcall|__clrcall) (?<ns>.*)\:\:(?<class>(.*)((<.*>)*))\:\:(?<method>(.*)((<.*>)*))\((?<params>((.*(<.*>)?)(,)?)*)\)
Run Code Online (Sandbox Code Playgroud)

有一些函数它不喜欢解析,但似乎与模式匹配。我不担心目前不是类成员的匹配函数(可以稍后处理)。该表达式用于 C# 程序,因此<label>s 用于轻松检索组。

我想知道是否有一个标准的正则表达式来解析所有函数,或者如何改进我的来处理奇怪的异常?

c# c++ regex header function

5
推荐指数
1
解决办法
8069
查看次数

为什么这个Javascript对象在$(document).ready之后不会超出范围?

我有一些工作Javascript来操纵一些DOM元素.问题是,我不明白它为什么会起作用,这从来都不是一件好事.我正在尝试更多地了解面向对象的javascript和javascript最佳实践,因此组织可能看起来有点奇怪.

基本上,我包装了两个操纵CSContent对象内部DOM的方法.我创建对象的实例,content$(document).ready并绑定一些事件中的功能content.但是,我很困惑如何在$(document).ready退出后仍然可以调用这些函数.这是不是意味着content已超出范围,其功能不可用?无论如何,这是代码:

function CSContent() {
    var tweetTextArea = document.getElementById('cscontent-tweet'),
        tweetTextElement = document.getElementById('edit-cscontent-cs-content-tweet'),
        charCountElement = document.getElementById('cscontent-tweet-charactercount');

    this.toggleTweetTextarea = function () {
      $(tweetTextArea).slideToggle();
    };

    this.updateTweetCharacterCount = function () {
        var numOfCharsLeft = 140 - tweetTextElement.value.length;
        if (numOfCharsLeft < 0) {
            $(charCountElement).addClass('cscontent-negative-chars-left');
        }
        else {
            $(charCountElement).removeClass('cscontent-negative-chars-left');
        }
        charCountElement.innerHTML = '' + numOfCharsLeft + ' characters left.';
    };
}



$(document).ready(function () {
    var content = new CSContent();
    //If the twitter …
Run Code Online (Sandbox Code Playgroud)

javascript jquery closures

5
推荐指数
2
解决办法
527
查看次数

Eclipse CDT中的格式(换行)构造函数初始化列表

我试着找到一个解决方案,现在~30分钟,找不到任何解决方案.我试图在CDT中设置代码样式,所以它给了我:

MyClass::MyClass() :    
var1(1), 
var2(2), 
var3(3){

}
Run Code Online (Sandbox Code Playgroud)

代替

MyClass::MyClass() :    
var1(1), var2(2), var3(3){

}
Run Code Online (Sandbox Code Playgroud)

但我找不到这样做的选择.

我能找到的唯一"初始化列表"选项实际上是数组,因此对我没用.

我的问题是:我错过了正确的位置吗?是否有插件可以比CDT更好地格式化C++代码?

c++ eclipse formatting constructor eclipse-cdt

10
推荐指数
1
解决办法
3043
查看次数

在Mercurial中切换分支时如何防止文件自动合并?

假设我有两个名为defaultand的分支newfeature.我readme.txt在两个分支都有一个文件.我正在newfeature分支机构,我对readme.txt进行了更改.如果我在hg up default没有提交更改的情况下运行,Mercurial会自动将readme.txt的版本newfeature直接合并到default.

我该如何改变这种行为?我担心的是开发人员在切换分支之前忘记提交,从而合并他们正在处理的任何内容.

这是过程的样子:

C:\source\BranchTest\Main>hg branch
Exams

C:\source\BranchTest\Main>hg status
M readme.txt

C:\source\BranchTest\Main>hg up default
merging readme.txt
0 files updated, 1 files merged, 0 files removed, 0 files unresolved

C:\source\BranchTest\Main>
Run Code Online (Sandbox Code Playgroud)

请注意自动合并,因为我没有将更改提交到readme.txt.Mercurial并没有警告我会发生这种情况.

有什么建议?

mercurial branch

3
推荐指数
1
解决办法
319
查看次数

如何在numpy数组上进行条件数组运算?

我试图更好地掌握numpy数组,所以我有一个示例问题要询问它们:

假设我有一个名为a的numpy数组.我想在一个操作上执行一个操作,使其中的所有值递增,小于0,其余部分单独留下.例如,如果我有:

a = np.array([1,2,3,-1,-2,-3])
Run Code Online (Sandbox Code Playgroud)

我想回来:

([1,2,3,0,-1,-2])
Run Code Online (Sandbox Code Playgroud)

什么是最紧凑的语法?

谢谢!

python numpy

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

如何使用CURL从页面解析实际的HTML?

我"试图"抓取页面中具有以下结构的网页:

<p class="row">
    <span>stuff here</span>
    <a href="http://www.host.tld/file.html">Descriptive Link Text</a>
    <div>Link Description Here</div>
</p>
Run Code Online (Sandbox Code Playgroud)

我正在使用curl抓取网页:

<?php
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, "http://www.host.tld/");
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    $html = curl_exec($handle);
    curl_close($handle);
?>
Run Code Online (Sandbox Code Playgroud)

我做了一些研究,发现我不应该使用正则表达式来解析从卷曲返回HTML,而且我应该使用PHP DOM.这就是我这样做的方式:

$newDom = new domDocument;
$newDom->loadHTML($html);
$newDom->preserveWhiteSpace = false;
$sections = $newDom->getElementsByTagName('p');
$nodeNo = $sections->length;
for($i=0; $i<$nodeNo; $i++){
    $printString = $sections->item($i)->nodeValue;
    echo $printString . "<br>";
}
Run Code Online (Sandbox Code Playgroud)

现在我并不假装我完全理解这一点,但我得到了要点,我确实得到了我想要的部分.唯一的问题是,我得到的只是HTML页面的文本,就像我从浏览器窗口中复制它一样.我想要的是实际的HTML,因为我想提取链接并使用它们,如下所示:

for($i=0; $i<$nodeNo; $i++){
    $printString = $sections->item($i)->nodeValue;
    echo "<a href=\"<extracted link>\">LINK</a> " . $printString . "<br>";
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我无法获得链接,因为我只获取网页的文本而不是我想要的来源.我知道"curl_exec"正在拉HTML,因为我已经尝试过了,所以我相信DOM在某种程度上剥离了我想要的HTML.

html php regex dom

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