这是一段代码,用于获取input表示命令行的字符串(NSString或NSAttributedString),并将其解析为两个字符串,即命令cmd和参数args:
NSString* cmd = [[input mutableCopy] autorelease];
NSString* args = [[input mutableCopy] autorelease];
NSScanner* scanner = [NSScanner scannerWithString:[input string]];
[scanner scanUpToCharactersFromSet:[NSCharacterSet
whitespaceAndNewlineCharacterSet]
intoString:&cmd];
if (![scanner scanUpToString:@"magicstring666" intoString:&args]) args = @"";
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但魔术字符串是一个非常荒谬的黑客.而且,我完全不确定我是否正确使用自动释放功能.
补充:解决方案对初始空格也应该是健壮的.另外,我最初的输入字符串叫做both input和inStr.对不起,这个混乱.
补充:我相信上面的代码有一点是正确的,到目前为止答案不是args不应该有任何初始空格.
我已经看到它声称以下"非常相同":
foo([NSString stringWithString:@"blah"]) # version 1
foo([[[NSString alloc] initWithString:@"blah"] autorelease]) # version 2
Run Code Online (Sandbox Code Playgroud)
事实上,上述字面上是等同还是有任何微妙的差异?选择其中一个的原因是什么?
我希望这打印,"[b]"但它打印"[]":
$x = "abc";
$x =~ /(b*)/;
print "[$1]";
Run Code Online (Sandbox Code Playgroud)
如果用加号替换星号,它就像我期望的那样.是不是加号和明星都应该贪婪?
补充:感谢大家指出(在几秒钟内,似乎!)"b*"匹配空字符串,第一次出现在字符串开始之前.所以贪婪根本不是问题.它甚至在到达第一个'b'之前匹配空字符串.
我有一个HTML(例子)中的常见问题解答,其中的问题相互引用很多.这意味着无论何时插入/删除/重新排列问题,编号都会发生变化.LaTeX使用\ label和\ ref非常优雅地解决了这个问题 - 你给项目简单的标签和LaTeX担心在最终文档中转换为数字.
人们如何处理HTML中的问题?
增加:请注意,如果您不必按编号实际引用项目,则不会有问题,在这种情况下,您可以设置标记
<a name="foo">
然后链接到它
<a href="#foo">some non-numerical way to refer to foo</a>.
但我假设"foo"有一些自动生成的数字,比如从<ol>列表中说出来,我想用这个数字来引用并链接到它.
我正在尝试连接到使用Comet的应用程序,并且对Javascript和Comet非常重视.我已经走了尽可能远的Firebug,HTTP Header检查,并试图通过使用Ruby Mechanize编写一些内容来查看线路上的内容.
但是,由于我没有客户端运行时,我的方法是模仿来回的HTTP请求(使用Ruby Mechanize执行此操作).我正在查看日志并将它们与LiveHTTPHeader输出进行比较,它非常相似,但服务器没有响应(我无法访问服务器端代码).
有没有可以提供帮助的工具?有没有人尝试使用像Rhino这样的东西模拟DOM和Javascript运行时,还是只是要求痛苦?
给定具有属性/值对的字符串,例如
attr1="some text" attr2 = "some other text" attr3= "some weird !@'#$\"=+ text"
Run Code Online (Sandbox Code Playgroud)
目标是解析它并输出一个关联数组,在这种情况下:
array('attr1' => 'some text',
'attr2' => 'some other text',
'attr3' => 'some weird !@\'#$\"=+ text')
Run Code Online (Sandbox Code Playgroud)
请注意等号周围的不一致间距,输入中的转义双引号以及输出中的转义单引号.
似乎在阳光下的每种语言中都有HMAC的实现.(见下文.)算法非常简单:
http://en.wikipedia.org/wiki/HMAC
有没有人在Mathematica中实现它?
以下是其他语言实现的指针:
我有一个要在网格中显示的n个徽标列表,每行最多3个.什么算法决定每行显示多少,以便每行的徽标数尽可能平衡而不使用超过最小可能行数?
例如:
n -> number in each row
1 -> 1
2 -> 2
3 -> 3
4 -> 2, 2
5 -> 3, 2
6 -> 3, 3
7 -> 3, 2, 2
8 -> 3, 3, 2
9 -> 3, 3, 3
10 -> 3, 3, 2, 2
Run Code Online (Sandbox Code Playgroud) 假设我有一个param-> value规则列表,其中params是可能赋值给它们的符号.例如:
{a, b, c} = {1, 2, 3};
x = Hold[{a->1, b->2, c->3}];
Run Code Online (Sandbox Code Playgroud)
我需要包含在Hold中的列表,否则它将评估为{1-> 1,2-> 2,3-> 3}.(如果能让其余部分变得更容易的话,我愿意接受任何替代方案.)
现在假设我想将x转换为:
{"a"->1, "b"->2, "c"->3}
Run Code Online (Sandbox Code Playgroud)
以下函数将执行此操作:
f[h_] := Block[{a,b,c}, ToString[#[[1]]]->#[[2]]& /@ ReleaseHold@h]
Run Code Online (Sandbox Code Playgroud)
我的问题:你能写一个f的版本,其中符号列表{a,b,c}不必明确提供吗?
我使用以下函数将数字转换为字符串以供显示(不要使用科学记数法,不要使用尾随点,指定圆形):
(* Show Number. Convert to string w/ no trailing dot. Round to the nearest r. *)
Unprotect[Round]; Round[x_,0] := x; Protect[Round];
shn[x_, r_:0] := StringReplace[
ToString@NumberForm[Round[N@x,r], ExponentFunction->(Null&)], re@"\\.$"->""]
Run Code Online (Sandbox Code Playgroud)
(注意,它re是.的别名RegularExpression.)
多年来我一直很好.但有时我不想指定要舍入的位数,而是我想指定一些有效数字.例如,123.456应显示为123.5,但0.00123456应显示为0.001235.
为了得到真正的幻想,我可能想要在小数点之前和之后指定有效数字.例如,我可能希望.789显示为0.8但是789.0显示为789而不是800.
对于这类事情,你有一个方便的实用功能,还是上面概括我的功能的建议?
更新:我试着在这里询问这个问题的一般版本:https:
//stackoverflow.com/questions/5627185/displaying-numbers-to-non-technical-users