为什么我的正则表达式找不到我的字符串?
Regex.Replace(" SCRIPT language=Javascript src=\"\"\r\ntype=text/javascript ",
"^language=Javascript$",
"language=\"Javascript\"",
RegexOptions.Multiline | RegexOptions.Compiled
);
Run Code Online (Sandbox Code Playgroud)
这^language=Javascript$是行不通的.如果我删除它有效,但我想确保一个部分相似的字符串不会被替换(它发生在我的测试中).字符串不是常量,我实际上使用变量,但这只是我使用的一种情况.有帮助吗?
那么,这是因为^代表了字符串的开始和$该字符串的结尾.你的正则表达式根本无法匹配.你可以用
\blanguage=Javascript\b
Run Code Online (Sandbox Code Playgroud)
作为解决方法,如果您只是想确保foolanguage=Javascript不匹配.但这在很大程度上取决于您期望的数据以及该方法的内容.一种更安全的方式
(?<= )language=Javascript(?= )
Run Code Online (Sandbox Code Playgroud)
这将确保比赛前后有空格.你可以从那里使它更复杂(和可靠),例如
(?<= )language=Javascript(?= |>)
Run Code Online (Sandbox Code Playgroud)
甚至匹配<script type='text/javascript' language=Javascript>.