我希望用重复的星号替换程序中的特定单词。
这是我目前的职能: Word就是被替换的词。
mystring = tbText.text
mystring = Replace(mystring, word, "***", 5, 1)
这里的问题是mystring只返回被替换的单词而不是返回整个字符串这一事实的原因,因为最小索引和最大索引,因此只返回索引5和索引10结尾的单词。集。
我是否可以使用另一个函数替换特定单词,同时返回整个字符串并替换单词?
答案 0 :(得分:1)
取下第4和第5个参数。
mystring = tbText.text
mystring = Replace(mystring, word, "***")
更新:正确完成我的研究后,OP想要的是将第4个参数更改为1,就像这样;
mystring = Replace(mystring, word, "***", 1, 1)
正如文档所解释的那样,这将返回从位置1(参数4)开始的原始字符串,并且只进行1次替换(参数5)。
希望我们现在都能同意OP的要求得到满足 - 即使它已经过了很多年了!
答案 1 :(得分:1)
var regex = new Regex(Regex.Escape("o"));
var newText = regex.Replace("Hello World", "Foo", 1);
答案 2 :(得分:0)
我想我从未使用过与{0}不同的Start
参数,所以我从未注意到" Replace函数的返回值是一个从指定位置开始的字符串按Start
并在Expression
字符串的末尾结束,并按照Find
和Replace
值的指定进行替换。&#34; < / p>
尝试使用此代码来解决您的问题:
Dim strWord As String = "6"
Dim strNewWord As String = "*****"
Dim strTest As String = "1234567890"
MsgBox(Strings.Left(strTest, strTest.IndexOf(strWord)) & _
Replace(strTest, strWord, strNewWord, strTest.IndexOf(strWord) + 1, 1))
答案 3 :(得分:0)
您可以使用StringBuilder
类
Dim mystring As String = "This is my String"
Dim word As String = "my"
Dim sb As New System.Text.StringBuilder(mystring)
sb.Replace(word, "***", 8, 2)
Dim newstring As String = sb.ToString()
现在newstring
设置为This is *** String