.net 如何用破折号替换特定角色的一个或多个实例?
我需要帮助编写一个正则表达式,该正则表达式能够检测字符串中定义的字符的一个或多个实例(在我的示例中是一个空格),并用一个破折号替换 我现在正在使用这个正则表达式,它替换字符串中一个或多个空空格的实例.net 如何用破折号替换特定角色的一个或多个实例?,.net,regex,.net-4.0,.net,Regex,.net 4.0,我需要帮助编写一个正则表达式,该正则表达式能够检测字符串中定义的字符的一个或多个实例(在我的示例中是一个空格),并用一个破折号替换 我现在正在使用这个正则表达式,它替换字符串中一个或多个空空格的实例 Regex.Replace(inputString, @"\s+", "-"); 我希望采用类似的方法,但对于另一个角色示例: 或& 你知道怎么解决吗?谢谢您在这方面的时间。只需将\s更改为;或者&它应该可以工作。只需将\s更改为;或者&它应该会起作用 Regex.Replace(inputSt
Regex.Replace(inputString, @"\s+", "-");
我希望采用类似的方法,但对于另一个角色示例:
代码>或&
你知道怎么解决吗?谢谢您在这方面的时间。只需将\s更改为;或者&它应该可以工作。只需将\s更改为;或者&它应该会起作用
Regex.Replace(inputString, @"\s+|;+|&+", "-");
[;&]
是一个字符类,包含方括号内的字符。您可以在那里添加所有要替换的字符
如果要与工作解决方案结合使用,只需将\s
添加到类中即可
Regex.Replace(inputString, @"[\s;&]+", "-");
[;&]
是一个字符类,包含方括号内的字符。您可以在那里添加所有要替换的字符
如果要与工作解决方案结合使用,只需将\s
添加到类中即可
Regex.Replace(inputString, @"[\s;&]+", "-");
嗨,它是什么意思?|(就在+?@GibboK之后),这是表示匹配\s+
或的管道操作符+
或&+
它是一个逻辑OR,就像C中的|
一样。我选择了这种方法而不是stema的字符类方法,因为它允许您也替换一个或多个较长模式的实例,例如,Regex.replace(inputString,@“\s++”(==)+”,“-”
将用一个破折号替换一个或多个空格,并用一个破折号替换一个或多个双方程符号,但它将保留一个方程符号。这是事实,如果要替换更长的模式,则需要or解决方案。好的,有效的(可扩展的)解决方案,所以+1只是最后一个问题,我如何替换角色“?您好,|(就在+之后)是什么意思?@GibboK,这是表示match\s+
或++
或&+
的管道操作符,它是一个逻辑OR,就像C#中的|
一样。我选择了这种方法而不是stema的字符类方法,因为它还允许您替换较长模式的一个或多个实例,例如Regex.replace(inputString,@“\s+=”)+", "-");
将用一个破折号替换一个或多个空格,并用一个破折号替换一个或多个双方程符号,但它将保留一个方程符号。这是事实,如果要替换更长的模式,则需要or解决方案。好的,有效的(可扩展的)解决方案,所以+1只是最后一个问题,我该如何替换角色“?regex
标记是识别关于正则表达式的问题所需的全部。标题中也不需要标记。regex
标记是识别关于正则表达式的问题所需的全部。标题中也不需要标记。只需小心使用此解决方案,因为它将匹配混合字符串(;&
)和统一字符串(;
),而这可能不是您想要的。@Dan使用或类似于此的方法将模式组合在一起将完全替换相同的内容。只是匹配方式不同。\s+|+|&+代码>只匹配三个重复字符中的一个字符序列。检查最后一行:vs。如果您只是删除匹配的字符,是的,它们的工作原理相同,但在替换匹配字符时需要更加小心。@Dan现在我明白您的意思了。是的,你是对的,它会在这里产生不同数量的破折号,这取决于你想要的行为。现在还不清楚这是否是你想要的,只要你理解其中的细微差别,这是一个很好的解决方案。只需小心使用此解决方案,因为它将匹配混合字符串(;&;
)和统一字符串(;
),这可能不是您想要的。@Dan使用或类似于@“\s+|+|和+”将模式组合在一起
将替换完全相同的内容。只是匹配方式不同。
\s++|+|&+
只匹配三个重复字符中的一个字符序列。检查最后一行:vs。如果只是删除匹配的字符,是的,它们的工作方式相同,但在替换匹配项时需要更加小心。@Dan现在我看到你的答案了重点。是的,你是对的。这将导致不同数量的破折号,所以这取决于你想要的行为。这是否是你想要的,还有点不清楚,只要你理解这一点差异,这是一个很好的解决方案。