我有这个
regex Regex.Replace(listing.Company, @"[^A-Za-z0-9_\.~]+", "-");
listing.Company是一个字符串,这可以工作但是当一个字符串有点时它不会删除它们。
你能帮帮我吗
答案 0 :(得分:2)
在您当前的正则表达式中,您排除了\.
,这会导致Regex.Replace
忽略它。此外,您的正则表达式不会将输入字符串转换为小写。您可以在之后执行此操作,但在替换之前执行此操作会使您的模式更简单。
尝试使用此方法:
var output = Regex.Replace(listing.Company.ToLower(), "[^a-z0-9_]+", "-");
答案 1 :(得分:1)
试
Regex.Replace(listing.Company.ToLower(), @"[^a-z0-9_]+", "-");
您要排除\.
,这是针对点的。
此外,如果您希望它使用较低的字母,则需要先将字符串转换为小写字母。
答案 2 :(得分:0)
也许你正在寻找这样的东西:
string res = Regex.Replace(listing.Company, @"[\W+\.~]", "-");
此处正则表达式引擎会查找A-Z, a-z, underscore
以外的任何字符以及dot
和~
,并将其替换为“ - ”。