Regex 在Sublime 3中使用正则表达式替换

Regex 在Sublime 3中使用正则表达式替换,regex,replace,sublimetext3,regexp-replace,Regex,Replace,Sublimetext3,Regexp Replace,我试图使用正则表达式在Sublime中使用replace,但我被卡住了。我尝试了各种组合,但似乎没有达到目的 这是输入和我想要的输出: 输入:N_BBP_c_46137_N 输出:BBP 我尝试了以下几种组合: [^BBP]+\b \*BBP*+\g 但是以上(以及其他许多)似乎都不起作用。您可以使用 (N_)[^_]*(_c_\d+_n) 替换为${1}一些新值$2 详细信息 (N_)-第1组($1或${1}如果下一个字符是数字):N_ [^\u]*-除\u -(\u c\ud+\u n

我试图使用正则表达式在Sublime中使用replace,但我被卡住了。我尝试了各种组合,但似乎没有达到目的

这是输入和我想要的输出:

输入:
N_BBP_c_46137_N

输出:
BBP

我尝试了以下几种组合:

[^BBP]+\b
\*BBP*+\g
但是以上(以及其他许多)似乎都不起作用。

您可以使用

(N_)[^_]*(_c_\d+_n)
替换为
${1}一些新值$2

详细信息

  • (N_)
    -第1组(
    $1
    ${1}
    如果下一个字符是数字):
    N_
  • [^\u]*
    -除
    \u
    -
    (\u c\ud+\u n)
    -第2组(
    $2
    ):
    \u c\uu
    ,1个或多个数字,然后是
    \u n

请参阅。

N_BBP\u c_46137_N
转换为
BBP
,根据注释,只需将整个长名称(如N_BBP_)替换为仅BBP*您还可以使用捕获组来保留BBP

\bN_(BBP)_\S*
  • \bN
    匹配前面有单词边界的N
  • (BBP)
    捕获组1,匹配
    BBP
    (或使用
    [A-Z]+
    匹配1+大写字符)
  • \us*
    匹配
    \u
    后跟0+倍非空白字符
在替换中,使用第一个捕获组
$1


如果您已经知道
BBP
,为什么要提取它?只需将整个长名称(如N_BBP_*)替换为仅BBP;我必须为大量这样的数据做这件事,
(N_)[^-*([u c_46137_N)
->
${1}一些新值$2
?或
\bN(BBP).\us*
,并用第1组
$1
替换!这是有效的;现在确认一下,我可以用\d替换数字46137,因为每种情况下它都是不同的;而且,这一切都会不同??那么,我如何让它更通用呢?