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

Posted

技术标签:

【中文标题】如何跳过字符串之间的字符?【英文标题】:How do I skip a character getting between the string? 【发布时间】:2019-08-15 09:07:41 【问题描述】:

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

使用正则表达式能够获取值,但在' ' 之间存在第三个' 时会出现异常。

变量规则包含整个字符串

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

当下面的字符串被传递时

规则:“街道地址” 一定是 'Samir Complex, 4th Floor, St Andrew's Road, Bandra (West)'(默认值)

预期值为街道地址Samir Complex, 4th Floor, St Andrew's Road, Bandra (West)

但获得街道地址Samir Complex, 4th Floor, St Andrew

【问题讨论】:

您在Andrew's 中有一个撇号',并且您尽可能很少 匹配 - .*?,这就是为什么正则表达式在找到的第一个撇号处停止跨度> 试试@"'(?&lt;val&gt;.*?)'\B"模式 是的,谢谢这个作品你能把它放在答案中,这样我就可以接受这个 【参考方案1】:

当匹配撇号时,您不想匹配每一个:在您的情况下,Andrew's 中的' 应该跳过。 您可以尝试检查单词边界;详情见Difference between \b and \B in regex

@"'(?<val>.*?)'\B"

代码:

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

【讨论】:

以上是关于如何跳过字符串之间的字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除或跳过字符串中的多个新行?

获取和跳过字符串组?

用python如何跳过文件的第一行并且统计剩下部分的某一个字符串的个数

如何使用 PHP 跳过 XML 文件中的无效字符

如何在 Java/Scala 中跳过流中的无效字符?

获取字符串后,在单个scanf中取字符串和整数会跳过其余的整数,为什么?如何在单扫描中完成?