正则表达式拆分为空格

本文关键字:空格 拆分 正则表达式 | 更新日期: 2023-09-27 18:17:14

>我有一个字符串,如下所述。

测试[0] = 值 1 测试1[0] = 值

2 测试3[0] = 值 3....等。

我想使用正则表达式将它们分开,如下所示

Test[0] = Value1
Test1[0] = Value2
Test3[0] = Value3

你能给我一些正则表达式将它们一行字符串分成多行吗?

如果您需要对此问题进行更多澄清,请告诉我。

正则表达式拆分为空格

试试这个:

String s = "Test[0] = Value1 Test1[0] = Value2 Test3[0] = Value3";
String result = Regex.Replace(s, @"(?<!=)'s(?!=)", "'r'n");

正则表达式(?<!=)'s(?!=)正在搜索一个空格字符('s,也许你想用一个空格替换它,=因为它还包含换行符(,它前后没有'r'n,并用.net替换它。

这将为您的示例生成您期望的结果。

更新:

与其猜测换行符的替换顺序,不如Environment.NewLine有一个很好的快捷方式来获取当前系统的换行符:=

因此,将代码更改为:

String result = Regex.Replace(s, @"(?<!=)'s(?!=)", Environment.NewLine);

您需要更具体地说明换行符之前或之后允许的内容。如果空格的每一边(这里而不是]或CC_10(都必须有数字或字母,你可以做的是搜索和替换:

s/(['d'w])'s(['d'w])/'1'n'2/gi

则表达式:

(Test['d]*'[['d]+'])'s*'='s*('w+)'s*

替换表达式(仅举个例子(:

$1 = $2 + chr(13)
        var results = Regex.Matches("Test[0] = Value1 Test1[0] = Value2 Test3[0] = Value3", @"[^'s]+'s*='s*[^'s]+")
            .OfType<Match>()
            .Select(item => item.Value)
            .ToArray();

这将匹配 x = y,其中 x 和 y 可以是除空格字符以外的任何内容。