我有一个包含多个破折号的字符串,但是它包含长破折号。
我可以使用哪种方法对破折号进行归一化?
text = Regex.Replace(text, @"(\u2012|\u2013|\u2014|\u2015)", "-");
预期输出类似于11-1111-11/11
实际情况几乎相同,但有些破折号很长。 (我不能放在破折号中,因为stackoverflow无法识别它。)
答案 0 :(得分:0)
以下是短划线上的一些信息。您也许可以将本文中的破折号复制并粘贴到您的代码中,并使用string.replace
在下面的SO帖子中找到答案:
看起来像以下代码为其他人解决了这个问题:
String s = "asd – asd";
s = s.replaceAll("\\p{Pd}", "-");
答案 1 :(得分:-1)
这有效:
It is '�'
0xffffffb0
您的带有竖线字符( private const string DashPattern = @"[\u2012\u2013\u2014\u2015]";
private static Regex _dashRegex = new Regex(DashPattern);
public static string RemoveLongDashes(string s)
{
return _dashRegex.Replace(s, "-");
}
)的表达式不是有效的正则表达式。如果要替换所有元音,请使用|
之类的表达式,即一组方括号内的选项。