我有两个文件,我一直在尝试与diff进行比较.这些文件是自动生成的,并且包含许多行,如下所示:
//! Generated Date : Mon, 14, Dec 2009
Run Code Online (Sandbox Code Playgroud)
我希望忽略这些差异,并且已经开始使用"-I REGEX"标志来实现这一点.
但是,"Date"和冒号之间出现的空格数量各不相同,不幸的是,diff使用的正则表达式的味道似乎缺少一些基本的正则表达式实用程序.
例如,我不能为我的生活获得"一个或多个"加号工作.同样处理空格的"\ s"表示.
diff -I '.*Generated Date\s+:.*' ....
Run Code Online (Sandbox Code Playgroud)
和
diff -I '.*Generated Date +:.*' ....
Run Code Online (Sandbox Code Playgroud)
两者都失败了.
不是继续盲目地尝试,有人可以指出我对正则表达式的diff特定子集的一个很好的参考吗?
谢谢!
=====编辑=======
感谢FalseVinylShrub,我已经确定我应该逃避我的'+'和任何类似的角色.这有点解决了这个问题.差异成功匹配
.*Generated Date \+.*
Run Code Online (Sandbox Code Playgroud)
和
.*Generated Date *.*
Run Code Online (Sandbox Code Playgroud)
(请注意,"Date"和"*"之间有两个空格.)
然而,第二个我尝试将':'添加到该表达式,如下所示:
.*Generated Date \+:.*
Run Code Online (Sandbox Code Playgroud)
和
.*Generated Date \+\:.*
Run Code Online (Sandbox Code Playgroud)
两个版本都无法匹配有问题的字符串,导致diff需要花费更多的时间来运行.有什么想法?
我已经在分支机构工作了很长一段时间,但我总是使用命令行工具来进行实际的合并.但是,现在我只需要从Eclipse中完成它.分支和合并是SCM系统的一个广泛使用的功能多年来,我希望Eclipse能够很好地支持它,但它似乎并非如此.
目前我正在开发一个由几个项目组成的产品,这些项目需要分支在一起.将更改从trunk更改为分支时,通常我会从分支checkout的根目录执行以下操作:(我在这里使用Subversion作为示例,但问题也应该适用于其他SCM工具.)
svn update
svn merge ^/trunk
svn commit -m "Merged from trunk"
Run Code Online (Sandbox Code Playgroud)
也许在中间解决一些冲突,但这就是我要做的一切.但是,在Eclipse中我只能在项目级别进行合并,这具有以下缺点:
这些限制似乎非常简单,因为Eclipse不知道根文件夹,因为它从SVN中检出单个项目.
我的问题是:我错过了什么,或者是否真的不可能以类似于我在命令行中执行的方式使用Eclipse?如果确实不可能,那么其他人如何应对呢?每个人都使用命令行或TortoiseSVN等外部工具吗?
<style type="text/css">..</style>
Run Code Online (Sandbox Code Playgroud)
从上面的HTML,我认为应该有,但我从来没有见过它,是吗?
如何在手机游戏中使用javascript从Iphone读取UDID?
我已经为Android开发了一些应用程序,这个问题总是存在:
我应该如何构建我的UI?我应该在活动后启动活动并离开手机来制作"后退"按钮,还是应该选择更优化但实施更复杂的方式,手动切换视图然后手动执行"后退"按钮功能?
您认为(或知道)更好的做法是什么?
我遇到了问题,如果单选按钮组中没有单选按钮,我需要检查JQuery,这样如果用户忘记检查选项,我可以给用户一个javascript错误.
我正在使用以下代码来获取值
var radio_button_val = $("input[name='html_elements']:checked").val();
Run Code Online (Sandbox Code Playgroud) 我正在调试一个崩溃日志.发生崩溃是因为(c ++ - )对象的vtable指针是0x1,而对象的其余部分似乎可以从崩溃日志中看出来.
程序在尝试调用虚方法时崩溃.
我的问题:在什么情况下vtable指针变为空?operator delete是否将vtable指针设置为null?
这在OS X上使用gcc 4.0.1(Apple Inc. build 5493)发生.
是否可以将此代码简化为更清晰/更快的形式?
StringBuilder builder = new StringBuilder();
var encoding = Encoding.GetEncoding(936);
// convert the text into a byte array
byte[] source = Encoding.Unicode.GetBytes(text);
// convert that byte array to the new codepage.
byte[] converted = Encoding.Convert(Encoding.Unicode, encoding, source);
// take multi-byte characters and encode them as separate ascii characters
foreach (byte b in converted)
builder.Append((char)b);
// return the result
string result = builder.ToString();
Run Code Online (Sandbox Code Playgroud)
简单地说,它需要一个带有中文字符的字符串,如郓,并将它们转换为ài.
例如,十进制中的中文字符为十六进制的37126或0x9106.
请参见http://unicodelookup.com/#0x9106/1
转换为字节数组,得到[145,6](145*256 + 6 = 37126).当在CodePage 936(简体中文)中编码时,我们得到[224,105].如果我们将这个字节数组分解为单个字符,我们224 = e0 =à和105 = 69 = i在unicode中.
请参见 …
我有一个非常奇怪的消息错误.我认为它不是来自Ruby而是来自unix系统.
所以,我有以下测试文件:
require File.dirname(__FILE__) + '/../test_helper'
class CatTest < ActiveSupport::TestCase
def test_truth
assert true
end
end
Run Code Online (Sandbox Code Playgroud)
因此,没有来自Fixtures目录中的YAML文件.
当我使用以下命令运行上面的测试时:
$ ruby ./test/unit/cat_test.rb
Run Code Online (Sandbox Code Playgroud)
我得到了非常奇怪的结果:
Loaded suite ./test/unit/cat_test
Started
E
Finished in 0.011252 seconds.
1) Error:
test_truth(CatTest):
IndexError: string not matched
1 tests, 0 assertions, 0 failures, 1 errors
Run Code Online (Sandbox Code Playgroud)
我找不到错误的含义
IndexError: string not matched
Run Code Online (Sandbox Code Playgroud)
但最奇怪的是昨天,它奏效了!
非常感谢您的帮助.
问候
(我在Ubuntu 9.04下工作)
java ×2
regex ×2
android ×1
c# ×1
c++ ×1
crash ×1
css ×1
diff ×1
eclipse ×1
gcc ×1
iphone ×1
javascript ×1
jquery ×1
macos ×1
merge ×1
objective-c ×1
optimization ×1
svn ×1
unit-testing ×1
vtable ×1