输入字符串:
hrStorageDescr{hrStorageDescr="devfs: dev file system, mounted on: /.mount/dev"}
仅与hrStorageDescr
的值匹配的正则表达式:
.*hrStorageDescr="(.*?)",.*
如何编写此正则表达式以保留匹配功能,但如果匹配devfs
字符串,则排除值中的所有内容?
答案 0 :(得分:0)
您可以在 bhrStorageDescr 之前加上单词边界\b
首先匹配 =“ 并断言直接在右边的不是 devfs ,然后使用负前瞻(?!devfs\b)
如果该断言成功,则使用否定的字符类将与"
以外的任何字符匹配的组捕获,并在匹配结束双引号([^"]+)
使用.*
将匹配模式的最后一次出现,使用.*?
将匹配第一个模式。如果要匹配所有匹配项,则可以省略该部分,前提是您允许匹配所有匹配项,而不是单个匹配项。
.*?\bhrStorageDescr="(?!devfs\b)([^"]+)"