VB.Net 正则表达式替换括号内的双引号
VB.Net Regex replace double quote inside of brackets
我一直在想办法解决这个问题。我需要替换一组括号内的双引号。我下面的示例显示了单引号,但我仍然遇到问题
这对我有用 -
Dim input As String = "This is my ['Test'] that works"
Dim output As String = Regex.Replace(input, "(?<=my.*)'(?=.*that)", "?")
生成此字符串 - This is my [?Test?] that works
.
但是如果我尝试这是追加而不是替换单引号 -
Dim input As String = "This is my ['Test'] that works"
Dim output As String = Regex.Replace(input, "(?<=[.*)'(?=.*])", "?")
生成这不是我想要的 - This is my ['?Test'?] that works
。
如您所见,Regex.replace 附加了 ?在单引号之后,但我需要它用 ? 替换单引号。我被难住了。
要匹配方括号内的所有单引号,需要对开头[
进行转义,否则将被视为特殊字符(开头一个字符class):
(?<=\[[^][]*)'(?=[^][]*])
此外,您需要限制字符与 [
和 ]
不同。为此,您可以使用 [^][]
否定字符 class(这将匹配 [
和 ]
以外的任何字符)。
我一直在想办法解决这个问题。我需要替换一组括号内的双引号。我下面的示例显示了单引号,但我仍然遇到问题
这对我有用 -
Dim input As String = "This is my ['Test'] that works"
Dim output As String = Regex.Replace(input, "(?<=my.*)'(?=.*that)", "?")
生成此字符串 - This is my [?Test?] that works
.
但是如果我尝试这是追加而不是替换单引号 -
Dim input As String = "This is my ['Test'] that works"
Dim output As String = Regex.Replace(input, "(?<=[.*)'(?=.*])", "?")
生成这不是我想要的 - This is my ['?Test'?] that works
。
如您所见,Regex.replace 附加了 ?在单引号之后,但我需要它用 ? 替换单引号。我被难住了。
要匹配方括号内的所有单引号,需要对开头[
进行转义,否则将被视为特殊字符(开头一个字符class):
(?<=\[[^][]*)'(?=[^][]*])
此外,您需要限制字符与 [
和 ]
不同。为此,您可以使用 [^][]
否定字符 class(这将匹配 [
和 ]
以外的任何字符)。