【问题标题】:Regex for remove everything after | (with | )正则表达式用于删除 | 之后的所有内容(带 | )
【发布时间】:2013-10-14 19:04:12
【问题描述】:

我试图为我的问题找到解决方案。

输入:

This is the sample title | mypcworld

输出:

This is the sample title

我想在记事本++上使用简单的正则表达式删除“|”之后的所有内容 这似乎很简单。但是我尝试使用此处列出的其他一些正则表达式“|.*$”,但没有运气。问题是字符“|”是改变等价于或。 所以请帮我解决它。

【问题讨论】:

标签: regex string notepad++


【解决方案1】:

管道| 是正则表达式中的一个特殊字符(意思是“或”),您必须使用\ 对其进行转义。

使用您当前的正则表达式:

\|.*$

正如你所提到的,我已经在 Notepad++ 中尝试过这个,它似乎运行良好。

【讨论】:

  • 出于某种原因,这给了我问题的完全相反的问题...... ???
  • @Radioactive,问题是关于“删除”Notepad++ 中| 之后的所有内容。如果您使用 Ctrl+H(用于查找 + 替换),请在“查找内容”字段中输入我的建议并在“替换为”字段中使用空字符串,确保选择“正则表达式”并单击“替换”按钮,它应该像描述的那样工作。我刚刚再次测试,7 年后,它仍然有效 =]
【解决方案2】:

如果您想获取| 之后的所有内容,不包括设置字符,请使用此代码。

[^|]*$

其他解决方案\|.*$

Results : | mypcworld

这个[^|]*$

Results : mypcworld

http://regexr.com/3elkd

【讨论】:

  • [^|]*$ 这对我来说效果很好。但是,为什么 ^.*$ 不起作用?它指定它可以以任何字符“。”开头和结尾。但它没有找到任何东西,至少对于我的 AegiSub 程序而言
【解决方案3】:

在使用 Notepad++ 打开的.txt 文件中,
Ctrl-F
进入“替换”选项卡
在空格中写下正则表达式模式\|.+ 查找内容
并让空格替换为空白

然后在选择正则表达式之后勾选ma​​tches newlines选项
并按两次替换按钮

【讨论】:

  • 在 Notepad++ 中,CRTL+H 将直接转到“替换”选项卡,因此而不是 CRTL+F 并更改为“替换”选项卡 - 可以使用那个选项卡。
猜你喜欢
  • 1970-01-01
  • 2018-06-26
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
  • 2019-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多