Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在记事本中设置差异++;带正则表达式_Regex_Notepad++ - Fatal编程技术网

Regex 在记事本中设置差异++;带正则表达式

Regex 在记事本中设置差异++;带正则表达式,regex,notepad++,Regex,Notepad++,假设我有两个文件main.txt和sub.txt。假设两个文件都有唯一的行,即同一行文本在两个文件中不会出现两次。另外,假设两个文件中都没有空行。现在,将文件视为字符串集合,每个集合中的成员都出现在一行上。这是可能的,因为我们的唯一性条件。现在假设sub.txt是main.txt的一个子集。我们如何计算main.txt和sub.txt的设置差异以生成新文件diff.txt?为了清楚起见,diff.txt的行应该是main.txt中出现的行,而不是sub.txt中出现的行。diff.txt中不应有

假设我有两个文件
main.txt
sub.txt
。假设两个文件都有唯一的行,即同一行文本在两个文件中不会出现两次。另外,假设两个文件中都没有空行。现在,将文件视为字符串集合,每个集合中的成员都出现在一行上。这是可能的,因为我们的唯一性条件。现在假设
sub.txt
main.txt
的一个子集。我们如何计算
main.txt
sub.txt
的设置差异以生成新文件
diff.txt
?为了清楚起见,diff.txt的行应该是main.txt中出现的行,而不是sub.txt中出现的行。diff.txt中不应有空行。diff.txt中的顺序不相关

实例 main.txt: sub.txt: diff.txt: 奖金问题
  • 我怎么知道一个集合实际上是另一个集合的子集?这是问题中的一个假设,但在实践中,我们可能无法确定这一点,并希望找到一种自动检查的方法
  • 如何判断每个文件中的行是否真正唯一
  • 我如何判断是否没有空行
  • 奖励答案 我先回答奖金问题。遵循以下步骤以确保问题中所述的正确条件:

    • 在记事本++中打开这两个文件并关闭任何其他文件
    • 按字母顺序对每个文件进行排序:
    • 确保以下正则表达式在两个文件中都没有匹配项,这将保证它们是无重复的:
      ^(+$\r\n)\1
      。如果要删除重复项,请将该正则表达式的所有引用替换为
      \1
    • 通过搜索
      ^$
      确保两个文件中都没有空行。如果发现任何错误,您可以手动删除它们
    • 创建第三个文件并将
      sub.txt
      main.txt
      的内容粘贴到此文件中。然后按字母顺序排序。计算正则表达式的出现次数:
      ^(+$)\r\n\1
      以检测重复行。如果计数与
      sub.txt
      中的行数匹配,则它是
      main.txt
      的子集。保留此文件以备将来使用
    主要答覆 在上一部分中创建的第三个文件中,搜索
    ^(+$)\r\n\1\r?\n?
    ,并替换为空字符串。这将从
    main.txt
    中删除
    sub.txt
    的所有元素,留下
    diff.txt


    注意:这种方法可能会在diff.txt的末尾留下一个空行,以防在diff.txt中发现重复项。在这种情况下,只需手动将其删除。

    为什么不编写一个小脚本?您可以使用比较插件:@Alex我实际上在检查子集的部分使用了比较插件。有没有办法使用比较插件生成差异?@Toto我受时间限制,觉得这样更快。
    Hello
    World
    How
    You
    Are
    
    World
    Hello
    
    How
    Are
    You