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