【发布时间】:2014-11-18 16:30:04
【问题描述】:
我正在尝试过滤大型文本文件中的某些字符串。我想获取以某个单词开头并以引号结尾的字符串,但只有该字符串的最后一部分从该单词的最后一个点开始。更准确地说,我在文档中搜索类名,从基本命名空间开始,但我不需要完全限定的类名,只需要类名本身。 (例如,不是"NamespaceA.NamespaceB.NamespaceC.Classname",只有"Classname"。
例如,从这个字符串:
sddkjasd"fhadslkfhdskljfahskjff"shkdfjhfkhafklj"NamespaceA.NamespaceB.NamespaceC.ClassnameA"swenbfjiwguzl"lgvfdu"eQVFZEIW"NamespaceA.NamespaceB.NamespaceC.ClassnameB"VDTZEvwqdtzevdzgi
我想要这些匹配:
ClassnameA
ClassnameB
NamespaceA 将始终相同,因此我可以将其用作开始条件,并使用结束引号。标记将始终存在,因此我可以将它们用作结束条件,但我不知道如何使用正则表达式仅选择从最后一个点开始的最后一个作品。当然我可以解决这个问题,例如对结果使用字符串操作(这就是我现在正在做的事情),或者对结果使用第二个正则表达式,但我很感兴趣是否有办法通过正则表达式直接获取此结果。目前,我正在匹配 NamespaceA.+?(?=\") 以获取完整的命名空间而无需关闭引号。分数。
【问题讨论】: