【问题标题】:hex number case change with notepad++ regex使用记事本++正则表达式更改十六进制数字大小写
【发布时间】:2018-05-19 11:51:46
【问题描述】:

在遥远星系的文件中的句子 "uint32_t per = 0x400e10b4u;"

我想改变头文件中所有十六进制数字的大小写,使用notepad++查找并替换为正则表达式。

我可以在查找框中使用表达式“(= 0x)(\w+)”找到数字的“400e10b4u”部分,但不知道如何将小写替换为大写。

记事本版本 7.5.6 所以我相信它可以完成

【问题讨论】:

  • 我不知道 Notepad++ 是否有我不知道的扩展功能,但我认为这需要六个不同的替换,每个字母一个。
  • @Daniel,你的意思是找到并更改 0x400(e)10b4u,然后对 0x400e(1)0b4u 一直执行相同操作直到数字末尾
  • 我的意思是找到所有十六进制数字中的as 并将它们替换为A,然后对bB 执行相同的操作,等等。鉴于\U 存在于记事本++,我会用它来代替。
  • @Daniel,\U\1 在我拥有的记事本版本中将所有小写字母更改为大写字母
  • 是的,这比我建议的要好。我只是不知道 Notepad++ 支持它。

标签: regex replace notepad


【解决方案1】:

正则表达式:(?<=0x)(\w+)

替换为:\U$1

\U 用于大写转换

Demo

【讨论】:

  • 显然不是。我一直生活在岩石下吗?我的朋友,没有小写或大写数字之类的东西。如果您期待特定的输出,您可以edit 您的问题并将其包含在其中。
  • \u$1 在记事本中不是 \U$1
  • @Matt 不太工作,使用正则表达式:(?
  • @joeblogs,我刚刚下载了 Notepad++ v7.5.6 并确认 \U\1 给出了预期的输出
  • @Matt 为抽出时间欢呼,我正在使用 f....... win10 所以我认为可能存在某种错误,但在尝试了多种打开/关闭查找/替换窗口我可以确认它最终与 \U\1 一起工作
猜你喜欢
  • 2014-03-05
  • 2014-03-30
  • 2017-02-27
  • 2019-04-25
  • 1970-01-01
  • 2017-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多