gpt4 book ai didi

java - 键值对的正则表达式,包括未转义的空格

转载 作者:搜寻专家 更新时间:2023-10-31 20:30:34 26 4
gpt4 key购买 nike

我需要一个正则表达式来解析属性文件中的键值对,以便将它们写入数据库。该应用程序是用java编写的。由于我需要存储有关注释行和空行的信息,properties.load 对我不起作用

Key 是未转义空格或等号(包括转义空格)首次出现之前的所有内容。值是行尾之前的所有内容,但也可以为空。

必须符合以下情况:

  • 键=值
  • 键值
  • 键=值值
  • key
  • 键值值
  • 键\键\键=值
  • 键\键\键值

我尝试了以下正则表达式,但它没有正确区分最后两种情况:

^(\\\s|[^\s=]+)+[\s|=](.*)?$

对于我在 Rubular 上得到的最后两个例子:

1. key\
2. key\ key value

代替

1. key\ key\ key
2. value

我也试过this , 但它对我也不起作用

在此先感谢您的帮助!

最佳答案

您想使用负向回顾 (?<!\\\\)\s检查空间时

^((.*?)((?<!\\\\)\\s|=)(.*?)|(\\w+))$

分解

(.*?)             Match everything non greedy up to the next match
((?<!\\\\)\\s|=) Match witespace not preceded by \\
(.*?) Again match everything non greedy up to the next match
|\\w+ Or match strings with no whitespace - this captures case 3 with no value

每个案例都使用此处的工具进行测试 http://www.cis.upenn.edu/~matuszek/General/RegexTester/regex-tester.html

关于java - 键值对的正则表达式,包括未转义的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6746811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com