【问题标题】:Regex handling "|" in Text正则表达式处理“|”在文本中
【发布时间】:2020-05-12 15:16:47
【问题描述】:

我收到以下文字:

Code = ABCD123 | Points = 30
Code = ABCD333 | Points = 44

最后,我想删除除代码之外的任何内容,输出:

ABCD123
ABCD333

我实际上尝试过 Code = | P.+

但我不知道如何获得“|”删除。目前,我仅以ÀBCD333 | 为例。 我在那里挣扎。

【问题讨论】:

  • 确保将| 转义为文字字符。
  • 你试过'\|'吗?管道字符在正则表达式中表示“或”,除非您对其进行转义。
  • @WiktorStribiżew:我认为管道不是问题,OP只想保留 Code 值。
  • @Toto current 问题是处理管道。
  • @WiktorStribiżew:OP 的正则表达式(据我了解他真正想要的)应该匹配 Code = P.+

标签: regex notepad++ regex-lookarounds regex-group


【解决方案1】:

假设代码仅由单词字符组成,您可以使用以下内容:

^Code = (\w+).+$

..并替换为:

\1

Demo.

如果代码可以是任何东西,您可以使用类似这样的代码:

^Code = (.+?)[ ]\|.+$

【讨论】:

    【解决方案2】:
    • Ctrl+H
    • 查找内容:^Code = (\w+).+
    • 替换为:$1
    • 检查 环绕
    • CHECK 正则表达式
    • 取消选中 . matches newline
    • 全部替换

    说明:

    ^           # beginning of line
      Code =    # literally
      (\w+)     # group 1, 1 or more word character
      .+        # 1 or more any character but newline
    

    替换:

    $1          # content of group 1
    

    屏幕截图(之前):

    截图(之后):

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      相关资源
      最近更新 更多