正则表达式:匹配字符,如果包含单词则中止

时间:2017-12-06 06:48:45

标签: regex

我有一个像

这样的文件
@ManyToOne
@JoinColumn(name = "p_id_1", referencedColumnName = "id", insertable=false, updateable = false)

@ManyToOne
@JoinColumn(name = "p_id_2", referencedColumnName = "id")

我正在尝试设计一个匹配从@ManyToOne)(已排除)的正则表达式,但如果该行包含, insertable

则不匹配

在尝试了之后我最终得到了@ManyToOne\n.+?(?=, insertable|\)),但这也匹配了第一行的一部分。我想要它做的是不匹配前两行和后两行只到)

作为旁注:我在用Groovy编写的Gradle-Build-Script中使用它。

1 个答案:

答案 0 :(得分:0)

我使用负面外观来确保匹配在遇到, insertable时中断,并使用正向前瞻来排除结束括号,例如:

@ManyToOne\n((?!, insertable).)*?(?=\))