Regex 如何替换包含另一个子字符串的行中的子字符串

Regex 如何替换包含另一个子字符串的行中的子字符串,regex,Regex,我有这句台词 对于包含任何大小写的“Id”的每一行,我想用int替换“string” 不确定如何对此进行分组 这是我的名单 我尝试过这样的^(.*(字符串)。*(Id)。*)$并替换为\1或\2 public string ID {get; set} public string IdSite {get; set} public string IdParent {get; set} public string IdPageType {get; set} public string PageType

我有这句台词

对于包含任何大小写的“Id”的每一行,我想用int替换“string”

不确定如何对此进行分组

这是我的名单

我尝试过这样的
^(.*(字符串)。*(Id)。*)$
并替换为
\1
\2

public string ID {get; set}
public string IdSite {get; set}
public string IdParent {get; set}
public string IdPageType {get; set}
public string PageType {get; set}
public string IdTemplate {get; set}
public string TemplateName {get; set}
public string IdTemplateParent {get; set}
你可以用

(?i)^(\s*\w+\s+)string(\s+Id)
或者,如果
ID
可能在单词内部

(?i)^(\s*\w+\s+)string(\s+\w*Id)
                          ^^^ 
替换为
$1新台币$2
。看。见:

详细信息

  • (?i)
    -不区分大小写的内联选项
  • ^
    -行的开头(或字符串,如果未在文本编辑器中使用,请在开头使用
    (?im)
    ,而不是
    (?i)
  • (\s*\w+\s+
    -第1组(
    $1
    ):0+空格,1+单词字符,1+空格
  • 字符串
    -一个
    字符串
    单词
  • (\s+Id)
    -组2(
    $2
    ):1+空格和
    Id
    字符串(如果在此组模式中使用
    \w*
    ,它将匹配0+个字字符)
您可以使用

(?i)^(\s*\w+\s+)string(\s+Id)
或者,如果
ID
可能在单词内部

(?i)^(\s*\w+\s+)string(\s+\w*Id)
                          ^^^ 
替换为
$1新台币$2
。看。见:

详细信息

  • (?i)
    -不区分大小写的内联选项
  • ^
    -行的开头(或字符串,如果未在文本编辑器中使用,请在开头使用
    (?im)
    ,而不是
    (?i)
  • (\s*\w+\s+
    -第1组(
    $1
    ):0+空格,1+单词字符,1+空格
  • 字符串
    -一个
    字符串
    单词
  • (\s+Id)
    -组2(
    $2
    ):1+空格和
    Id
    字符串(如果在此组模式中使用
    \w*
    ,它将匹配0+个字字符)

    • 您不需要匹配整条线路或捕获任何内容。相反,请尝试:

      string(?=.*?id)
      

      断言
      id
      位于
      string
      之后。另外,要以任何形式匹配
      id
      ,您应该启用不区分大小写的匹配,或者使用
      [iI][dD]
      来支持
      id
      您不需要匹配整行或捕获任何内容。相反,请尝试:

      string(?=.*?id)
      

      断言
      id
      位于
      string
      之后。另外,要以任何形式匹配
      id
      ,您应该启用不区分大小写的匹配,或者使用
      [iI][dD]
      来支持
      id

      尝试
      string(?=.*id)
      并启用不区分大小写的匹配。@revo,谢谢,如果您发布答案,我将接受itTry
      string(?=.*id)
      并启用不区分大小写的匹配。@revo,谢谢,这很有效,如果你把答案贴出来,我会接受的