[英]How to use REGEX in StepArgumentTransformation to find prefixed string
[英]RegEx for prefixed/unprefixed string
我正在尝试通过检测始终如下的标记来对我的XML字符串执行转换:
<attr name="firstName" />
<attr name="Name" />
<attr name="lastName" />
我希望抓住它并用后缀替换它,所以我会得到这个:
<attr name="firstName" /><attr name="beep" />
<attr name="Name" /><attr name="beep" />
但如果是最后一个,我希望不要做任何事情。
<attr name="lastName" />
我正在尝试这种检测模式。
Regex.Replace(before, "(<attr name=\"[first]*name\" />)", "[0]<attr name=\"beep\" />");
但这将匹配第一个的所有排列。 我怎样才能最多表达一个确切的字符串“first” ?
Regex.Replace(before, "(<attr name=\"[first]?name\" />)", "$0<attr name=\"beep\" />");
用?
替换*
将搜索一个或零个出现。
我建议使用否定前瞻:
Regex.Replace(before, "(<attr name=\"(?!last)[^\"]*Name\" />)", "$0<attr name=\"beep\" />");
要检测字符串“first”中的零个或一个,则可以简单地将lookbehind更改为可选的普通组,并将“last”替换为“first”。
Regex.Replace(before, "(<attr name=\"(?:first)?Name\" />)", "$0<attr name=\"beep\" />");
我想你想要的是:
Regex.Replace(before, "(<attr name=\"(?:first)?name\" />)", "$0<attr name=\"beep\" />");
[first]
在正则表达式中写着“任何字符f
, i
, r
, s
或t
”。
(?:first)
表示“字符的字符串first
,作为(非捕获)处理的组”。 ?
然后说先前的匹配应该发生零次或一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.