查找字符串左侧所有点的正则表达式



我想找到每一行的所有点,但只在"="的左侧。这些是我的样品:

"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"

最新更新