正则表达式匹配含空值键值对的问题及修正方案求助
正确的正则写法及说明
正则表达式
^\s*(\S+)\s*=\s*(.*?)\s*$
各部分作用解析
^:锚定行起始位置,确保仅匹配当前行的键值对,彻底解决空值时跨行匹配的问题\s*:匹配键前后、等号前后的任意数量空白字符(包括0个),兼容不同格式的空格缩进(\S+):捕获键名,\S+表示至少一个非空白字符,保证键名不含空格(.*?):非贪婪模式捕获值内容,会自动跳过等号后的前置空白,直到行尾的前置空白前,避免将多余空格纳入值的结果$:锚定行结束位置,确保匹配截止到当前行末尾
匹配效果示例
对于以下测试文本:
name = Alice
age =
address = 123 Main St
匹配结果:
- 键:
name,值:Alice - 键:
age,值:空字符串 - 键:
address,值:123 Main St
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

