使用正则表达式查找并替换未知的字符串中间值?

时间:2017-01-19 19:47:44

标签: regex notepad++

我对正则表达式并不熟悉,我无法表达以发现它有效。

我在档案中有什么:

9;01A6DB91;BC994;TRUE

10;01A6A91A;BC994;FALSE

112;01A6E1DA;BC994;TRUE

2000;0196AC26;BC994
  • Number在第一个之前是整数;
  • 然后8个字符A-z和随机数字(MAC地址);
  • 有时行以“BC994”格式结束,有时为TRUE,有时为FALSE

如何编写表达式以在112处更改UNKNOWN 8个字符;线,已知8个字符?

例如:

查找:112;??????????

替换为:112;12345678;BC994;

如果存在则保留TRUE或FALSE,否则不添加。

1 个答案:

答案 0 :(得分:2)

我做:

  • 控制 + ħ
  • 找到:(112;)[a-zA-Z0-9]{8}\b
  • 替换为:$1NEWCHARS
  • 全部替换

<强>解释

(112;)          : Capture group 1 that contains literally 112;
[a-zA-Z0-9]{8}  : 8 characters alpha num
\b              : word boundary, make sure we have not other letter/digit after

替换为group1后跟whatever you want