Ruby 包含负前瞻的正则表达式与整个字符串匹配
我有以下案文:Ruby 包含负前瞻的正则表达式与整个字符串匹配,ruby,regex,Ruby,Regex,我有以下案文: Name: <% $person %> <& component &> 名称: 我正在尝试设计一个Ruby正则表达式,它将为我提供所有看起来不像或的东西 这是我使用消极前瞻的方法: (?!<&|<%)(.+\s*)(?!&>|%>) (?!) 但它返回整个字符串(已测试),而我希望它返回名称:也许您可以选择将字符串中介于或之间的所有内容替换为空字符串: 试试这个正则表达式: (?)-正向查
Name: <% $person %> <& component &>
名称:
我正在尝试设计一个Ruby正则表达式,它将为我提供所有看起来不像
或
的东西
这是我使用消极前瞻的方法:
(?!<&|<%)(.+\s*)(?!&>|%>)
(?!)
但它返回整个字符串(已测试),而我希望它返回
名称:
也许您可以选择将字符串中介于
或
之间的所有内容替换为空字符串:
试试这个正则表达式:
-正向查找:文本开头或 “结束”标记((?)
或&>
)%>
-这就是您要捕获的内容。注意(.+?)
后面的+
, 不情愿的版本,防止“消费”整个剩余部分 文本的格式?
(?=这就是我要说的。我相信正则表达式是用来匹配文本的。据我所知,即使可以这样使用,它们也不能很好地执行相反的操作。不,对不起,我不能替换字符串。我正在使用的工具不允许它(我正在使用Rouge构建语法荧光笔)有趣的是,要小心,如果它直接放在字符串的开头,它会匹配一个被标记包围的文本。除了一个2+字符序列之外,不可能与Ruby regex匹配。对于PCRE,可以使用
,并在Lucene中使用补码运算符,但Onigmo不支持这些操作。(*SKIP)(*FAIL)
(?<=^|[&%]>)(.+?)(?=<[&%]|$)