gpt4 book ai didi

c# - 正则表达式可以支持找不到东西吗?

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:09 25 4
gpt4 key购买 nike

我有一个字符串,我想搜索两组字符。第一个是“in”,第二个是“-in”。要搜索的短语是“in-in”。我想用 8888 替换“in”,用 9999 替换“-in”,但我不知道如何不匹配最后的“in”部分。

这个字符串实际上是两个子串,一个是“in”,一个是“-in”。我试过使用 string.Split,但这没有帮助。

关于 .NET 正则表达式是否有可能基于替换 in 和 -in 以字符串 88889999 结束的任何想法/方向?现在,我似乎得到的只是 8888-8888

最佳答案

您可以使用 lookaround assertions 执行此操作:

(?<!-)\bin\b

匹配 in 仅当其前面没有 - 时。

-in\b

匹配 -in

word boundary anchors确保您不会意外匹配 binsintogain


解决方法:

Sub TestRegExSubstition()
Dim searchDictionary As New List(Of KeyValuePair(Of String, String))
searchDictionary.Add(New KeyValuePair(Of String, String)("in", "8888"))
searchDictionary.Add(New KeyValuePair(Of String, String)("-in", "9999"))

Dim sentenceArray = {"in-in",
"in Parvin-e",
"Parvin-in",
"in in-e",
"Parvin injā-in"}

For i = 0 To UBound(sentenceArray)
Dim input As String = sentenceArray(i)
For Each kvp In searchDictionary
Dim regex As Regex = New Regex("(?<!-)\b" + kvp.Key + "\b")
input = regex.Replace(input, kvp.Value)
Next
Console.WriteLine(input)
Next
Console.ReadLine()
End Sub

关于c# - 正则表达式可以支持找不到东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com