如何跳过字符串之间的字符?

Sus*_*eja 0 c# regex linq

我对正则表达式非常陌生,我需要从之间包含的字符串中获取特定值 ' '

使用正则表达式能够获取值,但是'在两者之间有三分之一时会获得异常 ' '

可变规则包含整个字符串

IEnumerable<string> possibleValues = Regex
    .Matches(rule, @"'(?<val>.*?)'")
    .Cast<System.Text.RegularExpressions.Match>()
    .Select(match => match.Groups["val"].Value)
    .ToArray();   
Run Code Online (Sandbox Code Playgroud)

传递以下字符串时

规则:“街道地址”
必须为“班德拉(西)班德圣安德鲁路4楼萨米尔综合楼”(默认值)

期望的值是班德拉(西)圣安德鲁路4楼的Street AddressSamir Complex。

但是在圣安德鲁4楼获得街道地址Samir Complex

Dmi*_*nko 6

匹配撇号时,您不希望每个都匹配:在您的情况下'Andrew's跳过。您可以尝试检查单词边界;请参阅正则表达式中\ b和\ B之间的区别的详细信息

@"'(?<val>.*?)'\B"
Run Code Online (Sandbox Code Playgroud)

码:

string[] possibleValues = Regex
  .Matches(rule, @"'(?<val>.*?)'\B")
  .Cast<Match>()
  .Select(match => match.Groups["val"].Value)
  .ToArray();  
Run Code Online (Sandbox Code Playgroud)