java - 如何制作与多行字符串中的标记匹配的正则表达式?

标签 java regex

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

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

@key=single line value

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

问题是我遗漏了中间带有“@”的值,例如电子邮件地址。那么我该如何修复正则表达式呢?

最佳答案

您可以使用以下一个:

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

Regular expression visualization

Debuggex Demo

不要忘记multiline flag .

关于java - 如何制作与多行字符串中的标记匹配的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26505090/

相关文章:

java - 创建一个 Word (.doc) 文件,将其转换为 PDF 和 HTML,无需打开 Open Office 端口

java - 将信息从 Java 发送到 Javascript?

java - NoSuchElement 两次使用扫描仪

javascript - 验证 javascript 十进制数

javascript - 我的脚本有什么问题?

java - 如何使用数组来缩短这段代码

java - Android & JNI 如何将 Byte[] 数据数组传递给 JNI 并取回 Byte[]

javascript - 简单的正则表达式 : multiple dots(. )

Java RegEx - 匹配参数列表

javascript - 使用包括空字符串的复杂正则表达式拆分数组