寻找包含特定单词的特定属性

时间:2018-05-28 11:34:55

标签: c# asp.net regex

我的任务是遍历整个网站,每个aspxascx页面以及.cs文件后面的代码,用另一个替换一个单词。我想到了ctrl-shift-f,找到所有与正则表达式相关的功能,然而,我制作的正则表达式模式似乎找到的属性名称并不一定包含我要替换的单词。

就我而言,我正在尝试更换“供应网站,供应商,供应商或供应商”等字样。与&#34;仓库&#34;。有些事情要注意 - 我们可以忽略CDATA [],属性总是有一个引号"而不是撇号。另外,目前我只是试图覆盖我们的设计层--aspx和ascx文件,所以我们正在处理HTML。我们没有任何HTML文字(例如<label> HELLO </label>

正则表达式

((Text|HeaderText|ToolTip).*|\n*(Supply|Supplysite|Supply\Ssite|Supplier))$

问题: 如何更改我的正则表达式以严格查找包含Text的{​​{1}},HeaderTextToolTip属性?

1 个答案:

答案 0 :(得分:2)

您可以使用

\s(Text|HeaderText|ToolTip)="[^"]*(Supply(?:\s?site)?|Supplier)[^"]*"

<强>详情

  • \s - 空白
  • (Text|HeaderText|ToolTip) - 三个替代子串中的任何一个
  • =" - ="子字符串
  • [^"]* - 除"
  • 以外的任何0 +字符
  • (Supply(?:\s?site)?|Supplier) - 两者中的任何一个:
    • Supply(?:\s?site)? - Supply可选地后跟可选的空格和site子字符串
    • | - 或
    • Supplier - Supplier子字符串
  • [^"]* - 除"
  • 以外的任何0 +字符
  • " - "字符。

请参阅this regex demo