我想弄清楚如何编写C#& Javascript正则表达式替换字符串中的连字符但只保留字母数字旁边的连字符。我不是正则表达式的专家,需要帮助组成一个。我尝试过以下方法:
(^([a-z0-9])-)+ | (^-([a-z0-9]))+
C#:
string UpdatedString = System.Text.RegularExpressions.Regex.Replace("- gomez-rodriguez - test1- -test2 -", @"(^([a-z0-9])-)+ | (^-([a-z0-9]))+", " ");
例如,如果string就像
“ - gomez-rodriguez - test1- -test2 - ”,
我需要替换的字符串看起来像
“gomez-rodriguez test1- -test2”。
在Javascript上,我正在使用替换功能。
答案 0 :(得分:0)
您是否尝试过像Microsoft这样的正则表达式摘要:Regular Expression Language - Quick Reference 和一个在线正则表达式解析器。
Goolge搜索将返回许多优秀的正则表达式解析器。使用解析器,您可以输入一些示例文本,然后输入正则表达式。当你实时看到比赛时,它应该真正加快发展。
我知道这不是您具体问题的答案,但希望这是一种您将来会发现有用的方法。
答案 1 :(得分:0)
您可以使用模式:
*(?<!\w)-(?!\w) *
但是,这将在字符串的开头或结尾留下空格,因此您可以使用Trim()
删除它:
string inputString = "- gomez-rodriguez - test1- -test2 -";
string pattern = @" *(?<!\w)-(?!\w) *";
string updatedString = Regex.Replace(inputString, pattern, " ").Trim();