regex 查找59_AND_A并将其替换为59_A_AND的正则表达式[已关闭]

ilmyapht  于 2023-05-23  发布在  其他
关注(0)|答案(2)|浏览(111)

已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。

3天前关闭。
Improve this question
我在一个文本文件中有这个模式:

XX_CCC_C

其中:

  • X:可以是数字[0,9]或字符
  • C:任意字符

例如:

59_AND_A<br/>
iot_Cnc_B <br/>

我想把它们改成这些:

59_A_AND<br/>
iot_B_Cnc <br/>

使用Notepad++ v.8.4.6。
我想我必须按字面意思使用_,我想我还必须使用_A_B,因为我需要为它们中的每一个使用正则表达式。但是我不知道如何设置_之间的字符和数字。
什么是正则表达式来查找和替换这类表达式?

ogq8wdun

ogq8wdun1#

您可以使用以下正则表达式进行搜索:

^([^_]+_)([^_]+)_(.+)

并替换为:

$1$3_$2

RegEx Demo

RegEx Demo:

  • ^:开始
  • ([^_]+_):捕获组#1。这将匹配1+个非下划线字符,后跟_
  • ([^_]+):捕获组#2。这匹配1+个非下划线字符。
  • _:匹配_
  • (.+):匹配所有剩余字符并捕获组#3中的内容
mwecs4sa

mwecs4sa2#

另一个选项是使用以下正则表达式进行匹配:

(\w+)_([A-Za-z]{3})_([A-Za-z])

并替换为相应的反向引用:

\1_\3_\2

正则表达式说明

  • (\w):包含字母数字字符的第1组
  • _:下划线
  • ([A-Za-z]{3}):包含三个字母字符的组2
  • _:下划线
  • ([A-Za-z]):包含字母字符的第3组

相关问题