在正则表达式中前瞻

时间:2015-05-08 14:31:16

标签: regex r lookahead

我正在尝试使用正则表达式,以便在第一个“/”出现之前提取字符串的一部分。在下面的示例中,初始字符串是“原子分组/占有限定符/条件和递归模式”,我想得到“原子分组”

library(stringr)
var.descr <- "Atomic grouping / possessive qualifiers / conditional and recursive patterns"

我尝试了以下内容,但它匹配字符串,直到last“/”出现(它返回“原子分组/占有限定符”)

str_extract(var.descr, perl("^.+(?=\\s/)"))

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您可以使用这样的前瞻性正则表达式:

str_extract(var.descr, perl("^.+?(?= / |$)"))

(?= / |$)将确保/后面跟着匹配的文字,或者匹配到输入结束。

RegEx Demo

答案 1 :(得分:1)

你可以使用&#34; lazy&#34; + ?之后的str_extract(var.descr, perl("^[^/]+"))

<StackPanel Orientation="Vertical">
    <StackPanel Orientation="Horizontal"> 
        <Button Click="Button_Click"/> 
        <Button Click="Button_Click_1"/> 
        <Button Click="Button_Click_2"/> 
    </StackPanel>
    <Pivot>
        <PivotItem>
            <local:someControl /> 
        </PivotItem>
        <PivotItem>
            <local:someControl />
        </PivotItem>
        <PivotItem>
            <local:someControl /> 
        </PivotItem>
    </Pivot>
</StackPanel>