第一个正则表达式实例匹配在第一行不匹配?
Posted
技术标签:
【中文标题】第一个正则表达式实例匹配在第一行不匹配?【英文标题】:First regex instance match not matching on first line? 【发布时间】:2014-06-30 11:27:48 【问题描述】:根据以下示例,我有一个正则表达式模式。
http://regex101.com/r/sB3kK5
基本上它只匹配特定正则表达式模式的第一个实例。
但是,作为一次性派生,如果只有一个模式(匹配第一个实例与空行和模式上方的空格),我可以获得以下匹配。
http://regex101.com/r/eY0iC7
但是,如果模式在第一行,则不匹配。
http://regex101.com/r/qH7iT4
如何让最后一个示例匹配第一行?
【问题讨论】:
【参考方案1】:^(.+?)?\byo\b(?:(?!cut me:|yo).)*cut me:
我刚刚在(.+?)
之后添加了一个?
以使其可选。
demo
【讨论】:
【参考方案2】:如何让最后一个示例匹配第一行?
正则表达式:^(.+?)\byo\b(?:(?!cut me:|yo).)*cut me:
在by
之前需要一个或多个字符,因为(.+?)
中的+
。考虑将其更改为(.*?)
。
【讨论】:
以上是关于第一个正则表达式实例匹配在第一行不匹配?的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式 - 在第 n 个空格之间匹配数据并在第 n 个空格处停止
正则表达式 - 在第一个和第三个字符之间插入一个特殊字符 (~),并且仅当存在完全匹配时