【问题标题】:Notepad++ delete everything outside the " quotes with regular expressionNotepad++ 用正则表达式删除 " 引号外的所有内容
【发布时间】:2022-01-03 13:56:09
【问题描述】:

到目前为止,我搜索并尝试了很多,但我认为最好问问。

情况:

我有一个包含多行(大约 5000 行)的文件,如下所示:

Testtext und hier steht noch mehr!
Franz jagt 在 einem total verwahrlosten Taxi durch die Eifel
Hier ist eine Zeile mit einer Information, die Information ist "ABC12345"
Zu der Information gibt es eine 2te Zeile mit einer weiteren 信息 "Info1|Info2|Info3"
Dann kommt noch eine ueberfluessige Zeile

...我只需要ABC12345Info1|Info2|Info3 的信息。

我想删除引号之间没有的所有其他内容。 每个信息块的方式都是一样的。

我也想删除没有重要信息的行

我得到的:

ABC12345
信息1|信息2|信息3
ZYX9876
Info9|Info7|Info5

或与引号相同(这并不重要)

我尝试搜索正则表达式\"(.*?)\",这很好,我可以在“引号”中找到所有内容。

在那之后我的下一步是说删除所有内容不是\"(.*?)\" ...过度搜索和替换。

但我不明白我怎么能否定这一点。

(?!(\"(.*?)\")) 不起作用。

我认为对于专家来说很容易解决它,请帮助我。

【问题讨论】:

  • 好的,我现在可以用这个正则表达式删除所有我不需要的信息:.*(\"(.*?)\").* 但是没有的行引号中的信息仍然存在!我在替换字段中使用 \1 或 $1!
  • 尝试查找"(.+?)"|.\n?并全部替换:$1

标签: regex notepad++ regex-negation


【解决方案1】:
  • Ctrl+H
  • 查找内容:".+?"(*SKIP)(*F)|.
  • 替换为:LEAVE EMPTY
  • CHECK 正则表达式
  • 取消选中 . matches newline
  • 全部替换

说明:

".+?"           # matches something beween quotes
(*SKIP)(*F)     # fail the match
|               # OR
.               # any  character

屏幕截图(之前):

截图(之后):

【讨论】:

  • 你好,THX 4。这几乎是我需要的。如果我使用它,我可以删除空行,这可以使用记事本++。我用原始文件尝试了一些其他的东西(一点点其他文本),我也可以删除没有重要信息的行。查找:.*(\"(.*?)\").*|.*Job.*[\r]?[\n]||.*job.*[\r]?[\n] 恢复: 1 工作和工作是我不需要的。所以我得到的结果只有信息的 2 行的 2 倍。但感谢您提供的所有这些信息有助于找到最终解决方案!顶一下!
  • @duckknight:这不是你问的。您应该更新问题,或者更好地用真实文本和预期结果提出新问题。
【解决方案2】:

我在这种情况下使用“更多”原始文件的解决方案:

一些带有 Job 字样的文本
一些带有 Job 的其他文本
Job 已被 发送到“ABC1234”
工作所有者的用户名“Info1|Info2”

Find: .*(\"(.*?)\").*|.*Job.*[\r]?[\n]||.*job.*[\r]?[\n]
Restore: $1 

工作和工作也是我不需要的行中的文本。所以结果我只有 X 倍的 2 行信息,没有空行。

感谢您提供的所有帮助找到最终解决方案的信息!

【讨论】:

  • 这不是你问的。您应该更新问题,或者更好地用真实文本和预期结果提出新问题。
  • @duckknight,如果可能的话,分享您的一小部分数据,以及您希望作为示例 texr 更好地理解您的更改,您将获得您想要的代码。 ..
  • 您好 Toto,抱歉,这是我的问题,只是文本不正确。使用 .*(\"(.*?)\").*|.*Job.*[\r]?[\n]||.*job.*[\r]?[\n] 我可以删除一切都不是配额之间的事情! @Haji Rahmatullah 我想你明白了,我不能发布原始用户数据和系统数据,但文本与我在自己的答案中写的几乎相同。 AND:它是用语法解决的。我捕获您的信息并将其更改为我的需要。在我的回答中。没有什么可做的了!我自己回答,所以其他用户可以在需要时获取语法谢谢!!
猜你喜欢
  • 2019-04-15
  • 2017-08-24
  • 1970-01-01
  • 2010-10-16
  • 2011-09-17
  • 2013-01-13
  • 2018-05-26
  • 2019-05-02
  • 1970-01-01
相关资源
最近更新 更多