如何在多行字符串中创建与标记匹配的正则表达式?

时间:2014-10-22 10:09:20

标签: java regex

我正在Java中读取这样的属性文件:

@name=single line value
@description=multiline value
...
user@server.com

@key=single line value

我想匹配每个键/值对。所有按键都以' @'为前缀。允许使用字符和多行值。我正在使用此正则表达式(全局,多行): ^@[^@]+=.+\n*[^@]* 。有关详细信息和测试,请参阅http://regexr.com/39p9b

问题是我遗漏了价值与' @'在中间,像电子邮件地址。那么如何修复正则表达式呢?

1 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

^@[^=]+=(?:[^@]|(?<!^)@)+$

Regular expression visualization

Debuggex Demo

不要忘记multiline flag