【问题标题】:Find a word between double quotes and replace it with suffix using regular expressions in notepad++在notepad++中使用正则表达式查找双引号之间的单词并用后缀替换
【发布时间】:2021-09-23 07:42:47
【问题描述】:

我有一个包含如下文本的文件。我想在双引号(即 TABLE_NAME_1)之间找到单词,并在将后缀(即 _test)添加到原始单词后替换它。

文件中的样本数据:

<TableName Value="TABLE_NAME_1" />
<TableName Value="TABLE_NAME_22" />
<TableName Value="TABLE_NAME_333" />

预期数据:

<TableName Value="TABLE_NAME_1_test" />
<TableName Value="TABLE_NAME_22_test" />
<TableName Value="TABLE_NAME_333_test" />

我尝试如下。但这会在行尾添加后缀,而不是在最后一个双引号之前。

【问题讨论】:

    标签: regex string replace notepad++


    【解决方案1】:

    你可以使用

    查找内容&lt;TableName Value="[^"]*\K
    替换为_test

    这里,&lt;TableName Value="[^"]*\K 匹配 &lt;TableName Value=",然后是除 " 之外的零个或多个字符(带有 [^"]*),然后 \K 省略到目前为止匹配的文本。因此,_test 被添加到空字符串中,就在尾随 " 之前。

    查看演示截图:

    【讨论】:

    • @Viktor,\K 到底是如何工作的?由于这会丢弃直到最后一个位置的所有内容,以及OP 如何接受并支持您的答案,您的答案根本不起作用,但我们可以在捕获的组中更正它,就像这样 ↦ (&lt;TableName Value="[^"]*) 并替换为 @ 987654336@
    • 也可以是&lt;TableName Value=\K("[^"]*)
    • @HajiRahmatullah 请参阅Keep The Text Matched So Far out of The Overall Regex Match 以了解有关\K 的更多信息。
    猜你喜欢
    • 2018-09-29
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多