在正则表达式中修剪空白
本文关键字:空白 修剪 正则表达式 | 更新日期: 2023-09-27 18:08:51
我有一个用于解析由等号分隔的键/值对的正则表达式。在'='之前和之后可以有一些空白字符,但是key和values不应该有它们。例如
key=value
key = value
必须返回相同的结果:'key'和'value',而不是'key'和'value'。
我有一个小问题解析值,因为它可以是空的,它是好的。
key=
这是我的regex版本,不修剪值https://regex101.com/r/pY9rW8/2
您可以考虑不使用正则表达式的变体:
string s = "key=value";
var a = s.Split('=');
var key = a[0].Trim();
var val = a[1].Trim();
只需将值部分的空格与['t ]*
匹配
^'s*([^#]'S+?)'s*=['t ]*(.*)
或
^'s*([^#]'S+?)'s*=['t ]*(.*?)'s*$
演示您也可以在键和值上使用命名组,并扔掉空白:
^(?<key>.+)'s*='s*(?<value>.+)$
你给了这个正则表达式:
^'s*([^#]'S+?)'s*=(.*)
这不考虑=
之后的空白。为此,添加另一个's*
:
^'s*([^#]'S+?)'s*='s*(.*)
另外,假定您想要匹配字符串的末尾,因为您正在通过^
匹配开头,因此在末尾添加$
:
^'s*([^#]'S+?)'s*='s*(.*)$
下面是一个实例:
https://regex101.com/r/pY9rW8/6