我想找到每一行的所有点,但只在"="的左侧。这些是我的样品:
"key.other.this.sample" = "I am the localized text."
"key.other.this.sample.with.more" = "I am the sample URL with www.sample.com"
"key.other.this.sample.with.more" = "I am the sample wit a nline break"
我用下面的代码试了试:
((.{1})(?!")(?! )(?!(com))(?!(n))).*(?<=(=))
这给了我正确的结果,但是它检查了整行,而不是只检查左侧的"="
"回顾过去"能做到这一点吗?
提前感谢。
您可以使用向后看断言来标记它,但仅在支持有限量词的情况下:
(?<=^[^=n]*).
模式匹配
(?<=
正向后看,断言左边的是^[^=n]*
断言字符串的开始,并可选匹配除换行符或等号以外的任何字符
)
关闭后视.
匹配点
Regex演示
基于字符的模式可以跳过第一个等号
后面的所有字符=.*(*SKIP)(*FAIL)|.
Regex演示
使用预先查看=
:
.(?=.*=)
查看所有示例的实时演示。
前面的(?=.*=)
断言在当前位置之后存在一个=
。
如果你希望点和等于在值内的所有点之后,扩展forward,在等号后面要求两个引号:
.(?=.*=.*".*")
查看现场演示
防止:
"some.key" = "foo.bar=baz"