我preg_replace用来逃避特殊字符:
$tmpStr=preg_replace("/\?/", "\?", $tmpStr);
$tmpStr=preg_replace("/\#/", "\#", $tmpStr);
$tmpStr=preg_replace("/\^/", "\^", $tmpStr);
$tmpStr=preg_replace("/\&/", "\&", $tmpStr);
$tmpStr=preg_replace("/\*/", "\*", $tmpStr);
$tmpStr=preg_replace("/\(/", "\(", $tmpStr);
$tmpStr=preg_replace("/\)/", "\)", $tmpStr);
$tmpStr=preg_replace("/\//", "\/", $tmpStr);
Run Code Online (Sandbox Code Playgroud)
但是我无法$使用相同的功能逃脱:
$tmpStr=preg_replace("/\$/", "\$", $tmpStr);
Run Code Online (Sandbox Code Playgroud)
而且当我使用上面的语句时,所有空格都被替换为$并且$没有被转义.
如何正确逃避美元符号?
这个问题的解决方案建议使用 John Resig 的类实现。该解决方案涵盖了我的所有需求,除了:
如何在此类内部声明一个可以从外部访问的公共全局变量?
我想建立如下内容:
var MyClass = Class.extend({
EVENT_NAME : 'event-name',
init : function() {
// ...
}
});
// Now another file can directly read this value without creating the class object
console.log( MyClass.EVENT_NAME );
Run Code Online (Sandbox Code Playgroud) 如果我运行程序并引发异常,我会被问到是否要继续或中断.
如果让我选择休息,我可以看到那里的异常是从,但未来若突破是在图书馆或系统文件的我的源文件不是一个(说的例外是System.pas或Controls.pas)我需要手动步骤执行前使用F8,直到它返回到我的一个文件,所以我可以看到我的代码的哪一部分导致异常.
这可能需要很长时间.
我知道我应该在我的代码中捕获较低级别的异常,但在这个例子中它并没有击中我的异常处理程序之一.
有没有办法说
我也对其他编译器/ IDE如何处理它的一般好奇感兴趣.
如果我没有像我应该那样明确表示道歉.
使用方法调用很容易从lambda转到Expression
public void GimmeExpression(Expression<Func<T>> expression)
{
((MemberExpression)expression.Body).Member.Name; // "DoStuff"
}
public void SomewhereElse()
{
GimmeExpression(() => thing.DoStuff());
}
Run Code Online (Sandbox Code Playgroud)
但我想将Func转换为表达式,仅在极少数情况下......
public void ContainTheDanger(Func<T> dangerousCall)
{
try
{
dangerousCall();
}
catch (Exception e)
{
// This next line does not work...
Expression<Func<T>> DangerousExpression = dangerousCall;
var nameOfDanger =
((MemberExpression)dangerousCall.Body).Member.Name;
throw new DangerContainer(
"Danger manifested while " + nameOfDanger, e);
}
}
public void SomewhereElse()
{
ContainTheDanger(() => thing.CrossTheStreams());
}
Run Code Online (Sandbox Code Playgroud)
不起作用的行给了我编译时错误Cannot implicitly convert type 'System.Func<T>' to 'System.Linq.Expressions.Expression<System.Func<T>>'.显式强制转换无法解决问题.我有一个设施可以做到这一点吗?
这是一个C#Asp.net MVC项目.
我目前在global.asax.cs中设置了Unity映射.我想将容器设置从代码移动到web.config.
我自己的类型一切都很好,但现在我需要翻译这一行:
container.RegisterInstance(System.Web.Security.Membership.Provider);
(所有其他配置行都是container.Register 类型).
我根本没有走得太远.如果我甚至包括
<typeAliases>
<!-- others elided -->
<typeAlias
alias="MembershipProvider"
type="System.Web.Security.MembershipProvider, System.Web"></typeAlias>
Run Code Online (Sandbox Code Playgroud)
它死了配置错误:
The value of the property 'type' cannot be parsed. The error is: Could not load file or assembly 'System.Web' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
所以这很奇怪 - 似乎它没有在GAC中寻找它来解决它?或者System.Web不在appdomain中?
如果我手动将System.Web复制到bin文件夹,我可以继续,并解决问题的关键:你如何RegisterInstance System.Web.Security.MembershipProvider - > System.Web.Security.Membership.Provider?
<type type="MembershipProvider" mapTo="System.Web.Security.Membership.Provider, System.Web"></type>
Run Code Online (Sandbox Code Playgroud)
给出:
无法从程序集"System.Web"加载"System.Web.Security.Membership.Provider"类型.
正如所料,因为它不是一种类型.
谢谢你的任何指示.
为什么以下算法不会停止?(str是我正在搜索的字符串,findStr是我想要查找的字符串)
String str = "helloslkhellodjladfjhello";
String findStr = "hello";
int lastIndex = 0;
int count = 0;
while (lastIndex != -1) {
lastIndex = str.indexOf(findStr,lastIndex);
if( lastIndex != -1)
count++;
lastIndex += findStr.length();
}
System.out.println(count);
Run Code Online (Sandbox Code Playgroud) 我们正在使用Exchange 2007 WS来处理邮件文件夹,如果我们尝试转发我们已收到的邮件,则会遇到各种问题.我们的流程是:
除了再次发现邮件证明相当片状.我们经常收到以下错误:
在商店中找不到指定的对象.
是否有更好/更可靠的方式我们可以实现相同的目标?Exchange WS的文档相当稀疏.
合并两个分支(使用SVN 1.6.1)时,在两个分支上添加了一个文件(然后在那些单独的分支中处理),我遇到了一个新的树冲突:
C foo.txt
> local obstruction, incoming add upon merge
Run Code Online (Sandbox Code Playgroud)
我需要来自两个分支的更改,但树冲突不会给我通常的.working,.merge-left和.merge-right文件 - 由于冲突的性质,这是可以理解的.这些冲突中有相当多的冲突,并且每个分支上都删除了相同的文件,但它们很容易解决.
我该如何解决这个问题?SVN redbean一书(1.6)不包括这种情况.
基本上我需要做String.IndexOf(),我需要从源字符串中获取索引数组.
有没有简单的方法来获取索引数组?
在提出这个问题之前,我已经搜索了很多,但还没有找到解决这个简单问题的简单解决方案.
我已经看到Delphi中的大多数组件(VCL)分为两部分.
1)DesignTime包
2)RunTime包
为什么这么大惊小怪.如果将RunTime和DesignTime包合并为一个包,它会有什么不同?
我从来没有真正理解这种分离逻辑.
那么这背后的逻辑是什么?
有人说,有人提到这种区别只是为了避免采用和遵循微软制定的组件标准.真的,这背后没有逻辑.
这是真的?
c# ×3
.net ×2
delphi ×2
string ×2
algorithm ×1
asp.net-mvc ×1
delphi-2007 ×1
design-time ×1
expression ×1
func ×1
java ×1
javascript ×1
jquery ×1
lambda ×1
merge ×1
packages ×1
php ×1
preg-replace ×1
regex ×1
runtime ×1
svn ×1
vcl ×1