0

我所拥有的是一个程序,它从文本框中获取用户的输入并在其末尾添加一个句点。我要解决的问题是,如果用户在他们输入的内容的末尾加上一个句点,那么我希望能够删除那个句点。我尝试使用字符串替换方法,但这只允许您对单个字符执行此操作。接下来我想到的是正则表达式。

我试过这个:

finalString = Regex.Replace(finalString, "..", ".");

但它所做的只是用句点替换每个字符。是否有一个正则表达式可以让我替换两个相邻的句点?

4

3 回答 3

1

.具有特殊含义,因此您需要使用\

finalString = Regex.Replace(finalString, "\\.\\.$", ".");

或简单地使用逐字符号

finalString = Regex.Replace(finalString, @"\.\.$", ".");

$如果句点的位置在字符串的最后一部分,则在正则表达式的末尾添加断言。

于 2012-10-21T16:36:44.140 回答
1

如果您想将这些字符中的任何一个用作正则表达式中的文字,则需要使用反斜杠对其进行转义。

左方括号[、反斜杠\、插入符号^、美元符号$、句点或点.、竖线或竖线符号|、问号?、星号或星号*、加号+、左圆括号(和右圆括号)

好读

于 2012-10-21T16:42:14.610 回答
1

.在正则表达式中表示匹配任何字符..在您的情况下..表示匹配任何两个字符并将其替换为.

你应该像这样逃避它\.

它应该是

finalString = Regex.Replace(finalString, @"\.\.", ".");

于 2012-10-21T16:44:47.650 回答