我所拥有的是一个程序,它从文本框中获取用户的输入并在其末尾添加句点。我试图解决的问题是,如果用户在他们键入的内容的末尾放置一个句点,那么我希望能够删除该句号。我尝试使用字符串替换方法,但只允许您为单个字符执行此操作。我想到的下一件事是正则表达式。
我试过了:
finalString = Regex.Replace(finalString, "..", ".");
但它所做的只是用句点替换每个角色。是否有正则表达式可以让我替换彼此相邻的2个句点?
答案 0 :(得分:1)
.
具有特殊含义,因此您需要使用\
finalString = Regex.Replace(finalString, "\\.\\.$", ".");
或简单地使用逐字符号
finalString = Regex.Replace(finalString, @"\.\.$", ".");
如果句点的位置在字符串的最后部分,则在正则表达式结尾处添加$
。
答案 1 :(得分:1)
如果要在正则表达式中使用任何这些字符作为文字,则需要使用反斜杠转义它们。
左方括号[
,反斜杠\
,插入符号^
,美元符号$
,句点或点.
,垂直方向条形或竖线符号|
,问号?
,星号或星号*
,加号+
,左侧括号(
和结束圆括号)
。
答案 2 :(得分:1)
.
表示匹配任何字符。在您的情况下..
表示匹配任意两个字符并将其替换为.
你应该像\.
应该是
finalString = Regex.Replace(finalString, @"\.\.", ".");