我正在尝试整合John Gruber的改进的自由,准确的正则表达式模式,以便将URL匹配到我的Javascripts中,但是WebKit的检查器(在Google Chrome 5.0.375.125 for Mac中)给出了"无效组"正则表达式语法错误.
Gruber的原始正则表如下:
(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))
Run Code Online (Sandbox Code Playgroud)
我的JavaScript与regexp的行如下(带正斜杠反斜杠转义):
tweet_text = tweet_text.replace(/(?i)\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi, '<a href="$1">$1</a>');
Run Code Online (Sandbox Code Playgroud)
Google Chrome(V8?)错误如下:
Uncaught SyntaxError: Invalid regular expression: /(?i)\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/: Invalid group
Run Code Online (Sandbox Code Playgroud)
Safari错误如下:
SyntaxError: Invalid regular expression: unrecognized character after (?
Run Code Online (Sandbox Code Playgroud)
他声称它应该适用于现代JavaScript regexp解释器,我假设它是WebKit和V8.JavaScript的regexp语法是否不支持(?:(该死的谷歌没有索引标点符号!)分组语法?我是否只是想错过一些东西?
我正在阅读关于Stack Overflow(Python的禅宗)的另一个问题,我在Jaime Soriano的答案中遇到了这一行:
import this
"".join([c in this.d and this.d[c] or c for c in this.s])
Run Code Online (Sandbox Code Playgroud)
在Python shell中输入以上内容:
"The Zen of Python, by Tim Peters\n\nBeautiful is better than ugly.\nExplicit is
better than implicit.\nSimple is better than complex.\nComplex is better than
complicated.\nFlat is better than nested.\nSparse is better than dense.
\nReadability counts.\nSpecial cases aren't special enough to break the rules.
\nAlthough practicality beats purity.\nErrors should never pass silently.
\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to …Run Code Online (Sandbox Code Playgroud) 我一直在使用PMD帮助发现我的Java代码中的潜在问题,我一直在寻找它的建议,分为有用的,特殊的和"WTF ?!".
它一直告诉我要做的事情之一就是将final关键字用于字面上我可以附加的每个变量,包括输入参数.对于实际的常数,这似乎是明智的,但对于其他东西,它只是让我感到奇怪,甚至可能适得其反.
挂final在每个变量声明上是否有具体的优点/缺点?
让两个文件看起来做同样/类似事情的目的是什么?一个被弃用了,我应该使用另一个吗?拜托,请为我分解.
谢谢!

UTF-8可以编码5或6字节序列,允许编码所有Unicode字符吗?我的标准越来越矛盾了.我需要能够支持每个Unicode字符,而不仅仅是那些U + 0000..U + 10FFFF范围内的字符.
(所有引用均来自RFC 3629)
第3节:
在UTF-8中,使用1到4个八位字节的序列对来自U + 0000..U + 10FFFF范围(UTF-16可访问范围)的字符进行编码.一个"序列"的唯一八位字节将高阶位设置为0,其余7个字节用于编码字符编号.在n个八比特组的序列中,n> 1,初始八比特组将n个高阶比特设置为1,然后将比特设置为0.该八比特组的其余比特包含来自字符数的比特.要编码.以下八位字节都将高阶位设置为1,后面的位设置为0,每个字节留下6位以包含要编码的字符的位.
那么不是所有可能的字符都可以用UTF-8编码吗?这是否意味着我不能编码来自不同平面的字符而不是BMP?
第2节:
从未出现八位字节值C0,C1,F5至FF.
这意味着我们不能用5或6个八位字节编码UTF-8值(或者甚至是4个不在上述范围内的一些)?
第12节:
将字符范围限制为0000-10FFFF(UTF-16可访问范围).
看看之前的RFC证实了这一点......他们减少了字符的范围.
第10节:
编码为UTF-8时会出现另一个安全问题:UTF-8的ISO/IEC 10646描述允许编码高达U + 7FFFFFFF的字符数,产生最多6个字节的序列.因此,如果字符数范围没有明确限制为U + 10FFFF,或者缓冲区大小没有考虑到5字节和6字节序列的可能性,则存在缓冲区溢出的风险.
那么这些序列是否符合ISO/IEC 10646定义,而不是RFC 3629定义?我应该遵循哪一个?
提前致谢.
我有这个问题:当我尝试实现Ayende的复杂搜索时,请访问:http: //ayende.com/Blog/archive/2006/12/07/ComplexSearchingQueryingWithNHibernate.aspx ,对象图:人:M:1地址:M :1街道:M:1地点:M:1国家我收到以下错误:NHibernate.QueryException:无法在没有投影的条件下使用子查询.我这样做:
public List<Person> Find()
{
DetachedCriteria query = DetachedCriteria.For<Person>();
AddAddressQuery(query);
return personRepository.Find(query);
}
private void AddAddressQuery(DetachedCriteria query)
{
DetachedCriteria addressQuery = null;
if (!String.IsNullOrEmpty(SearchParams.HouseNumer))
{
addresaQuery = DetachedCriteria.For<Address>();
addresaQuery.Add(Restrictions.Eq("HouseNumer",
SearchParams.HouseNumer));
}
this.AddStreetQuery(ref addressQuery);
if (addressQuery != null)
{
query.CreateCriteria("Address1",
"address1").Add(Subqueries.Exists(addressQuery));
}
}
private void AddStreetQuery(ref DetachedCriteria query)
{
DetachedCriteria streetQuery = null;
if (this.SearchParams.StreetId.HasValue)
{
streetQuery = DetachedCriteria.For<Street>();
streetQuery .Add( Restrictions.Eq("Id",
this.SearchParams.StreetId.Value));
}
if (streetQuery != null)
{
query = query ?? Query.CreateCriteria("Address1");
query.CreateCriteria("Street",
"street").Add(Subqueries.Exists(streetQuery …Run Code Online (Sandbox Code Playgroud) 我试图覆盖简单的 NSView 方法:
- (NSMenu *)menuForEvent:(NSEvent *)event {
NSMenu* result = [super menuForEvent: event];
NSMenuItem* mi = [[NSMenuItem alloc] initWithTitle: @"Foobar" action: @selector(foobar) keyEquivalent: @""];
[result addItem: mi];
return result;
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用。它永远不会被调用。
使用BinaryReader从C#流读取无符号24位整数的最佳方法是什么?
到目前为止,我使用了这样的东西:
private long ReadUInt24(this BinaryReader reader)
{
try
{
return Math.Abs((reader.ReadByte() & 0xFF) * 256 * 256 + (reader.ReadByte() & 0xFF) * 256 + (reader.ReadByte() & 0xFF));
}
catch
{
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?
我想在Oracle中获取查询执行时间.我不希望Oracle需要时间打印结果 - 只是执行时间.
在MySQL中,很容易从shell获得执行时间.
如何在SQL*Plus中执行此操作?
理论上,浏览器可以支持多种编程语言,用于网页的客户端脚本.实际上,ECMAScript是在所有浏览器中广泛实现和使用的唯一一个.因此对大多数人来说,它是网络不可或缺的一部分.
但是,它从未被W3C推荐用于网页脚本.尽管客户端交互变得越来越重要,但HTML5似乎确实促进了它.为什么会这样?
c# ×2
execution ×2
javascript ×2
.net ×1
app-config ×1
cocoa ×1
control-flow ×1
criteria-api ×1
ecma262 ×1
final ×1
gruber ×1
java ×1
nhibernate ×1
nstextfield ×1
obfuscation ×1
oracle ×1
python ×1
regex ×1
sqlplus ×1
unicode ×1
utf-8 ×1
w3c ×1