当前位置: 首页 > 知识库问答 >
问题:

使用正则表达式。替换以将文本拆分为最大长度的字符串,而不中断单词

龙欣德
2023-03-14

我正在尝试将文本拆分为特定长度的行(在本例中为69个字符或更少),而不打断单词,并使用空格或“/”作为我想要匹配的字符,以替换为换行符,我可以使用Regex进行替换。使用以下代码拆分

var strText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
var lines = Regex.Split(strText, @"(.{1,69})(?:\s|/|$)")
Console.WriteLine(string.Join("\n", Array.FindAll(lines,line => !string.IsNullOrEmpty(line))));

此代码给出以下结果(这是所需的结果)

Lorem ipsum dolor坐在那里,奉献奉献,我们做
eiusmod的诱惑偶然的和劳动等。当最小的时间,这是我们的工作练习。杜伊斯奥特鲁尔杜洛在
谴责在Velit esse Cillum Dolore欧盟fugiat nulla
pariatur。例外,偶尔不显露,必须在
culpa qui officia desunt molite anim id est labum。

我认为用正则表达式也可以得到同样的结果。替换,但我不能这样做。我试过:

var行=Regex。替换(strText, @"(.{1,69})(?:\s|/|$)", "\n");

但它返回7个特征线字符

是否可以将空格或“/”替换为7行69个字符或更少,而不中断单词?(如果一个线性代码,则额外加分)

共有1个答案

贝研
2023-03-14

您可以使用捕获的零件更改替换零件,以正确获取所有线

var lines = Regex.Replace(strText, @"(.{1,69})(?:\s|/|$)", "$1\n");
 类似资料:
  • 我试图匹配正则表达式模式来替换特定字符串。 示例文本:ABC/1111111 031111111/0318*12345678 我想用“/1222”替换03和18 in/0318,即(2022年12月)。我尝试了string replaceAll方法,但它替换了提供的示例字符串中所有匹配的字符。比如下面; 我尝试过的示例代码: 样本文本。替换(匹配器组(2),“12”); 样本文本。替换(匹配器组(

  • 我想使用Gson将字符串转换为Foo对象: 下面是我的正则表达式: 如何使用此正则表达式将所有,.和替换为,,而不更改JSON中的键和值?

  • 问题内容: 如何在Python中使用正则表达式替换文件中的字符串,因为我想打开一个文件,其中应替换其他字符串的字符串,而我们需要使用Reg表达式(搜索和替换)。有人可以帮助我吗?打开文件并将其与搜索和替换方法一起使用的一些示例 问题答案:

  • 问题内容: 我是regex的新手,我想做的是在特定条件下拆分String,但我不知道该怎么做。 这是样品/条件 我希望字符串被拆分,,,,,, 这可能吗? 问题答案: 如果 确实 需要使用正则表达式,则可能应该使用环顾四周机制,因为您不想 在 此字符 之前 或 之后 进行拆分。 输出:

  • 我的应用程序将userdata.dll的路径存储在字符串中。 我需要转换这个字符串: 转换为: 所有的< code>\都需要复制,这与路径有多少个< code>\无关。 像这样: 对此有任何帮助吗?我正在尝试遵循这个问题: 如何用VB.NET替换这根弦的一部分? 但无法找到如何制作这个Regex。。。

  • 问题内容: 我有一个字符串,需要根据出现的“,”(逗号)进行拆分,但是需要忽略在一对括号内出现的任何字符串。例如, 应拆分为 问题答案: 对于非嵌套 嵌套 (括号内的括号)