前几天我正在检查TIBCO GI,我印象深刻.
我感谢您对此提出的任何意见.
我正在尝试从EBML定义中提取所有匹配,如下所示:
| + A track
| + Track number: 3
| + Track UID: 724222477
| + Track type: subtitles
...
| + Language: eng
...
| + A track
| + Track number: 4
| + Track UID: 745646561
| + Track type: subtitles
...
| + Language: jpn
...
Run Code Online (Sandbox Code Playgroud)
我希望所有出现的"语言:???" 当前面有"Track type:subtitles".我尝试了几种变体:
Track type: subtitles.*Language: (\w\w\w)
Run Code Online (Sandbox Code Playgroud)
我在Ruby中使用多行修饰符,因此它匹配换行符(如其他语言中的's'修饰符).
这有助于获得最后一次出现,在上面的例子中,它将是'jpn',例如:
string.scan(/Track type: subtitles.*Language: (\w\w\w)/m)
=> [["jpn"]]
Run Code Online (Sandbox Code Playgroud)
结果我想:
=> [["eng"], ["jpn"]]
Run Code Online (Sandbox Code Playgroud)
什么是正确的正则表达式来实现这一目标?
有没有一个工具可以显示特定分支已合并到哪些分支?例如,如果“A”已合并为“B”和“C”但没有合并为“D”,那么如何输出“B”和“C”?我只需要分支名称。
是否可以加载远程脚本并对其进行评估?
例如:
$(someelement).update("<script type='text/javascript' src='/otherscript.js'>");
Run Code Online (Sandbox Code Playgroud)
并在otherscript.js:
alert('hi!');
Run Code Online (Sandbox Code Playgroud)
这不起作用.我想在每次用户点击某些内容时加载该脚本.我想另一种选择是将该脚本的内容放在我的主脚本中(并根据需要进行评估),但这不是一个非常好的方法.
此外,如果可以,是否可以从另一个域评估脚本?
这是我见过的最奇怪的事情之一.我正在维护的一些遗留代码会生成摘要:
require 'digest/sha1'
def encrypt(password, salt)
Digest::SHA2.hexdigest("--#{salt}--#{password}--")
end
Run Code Online (Sandbox Code Playgroud)
我用"hello"和"world"作为参数调用该方法,我得到了这个:
15ea8ac62708f3810b720b25dd6febe9d0ddc1ed
Run Code Online (Sandbox Code Playgroud)
但如果我直接这样做:
Digest::SHA2.hexdigest("--world--hello--")
Run Code Online (Sandbox Code Playgroud)
我明白了:
c95b3d8968d8044c42ff650ade81315ab9adf120e2b62a637e64fa362cb828dd
Run Code Online (Sandbox Code Playgroud)
请原谅我的法语,但WTF?!
Digest::SHA2我应该寻找某种设置吗?什么可能引发差异?