.net 正则表达式截断文本行(替换为零)

.net 正则表达式截断文本行(替换为零),.net,regex,.net,Regex,我有一个基于.NET的工具,它允许我对文件中的行进行正则表达式替换,但没有很多其他选项(我这么说是因为我很清楚这不是一个理想的工作工具……在这种情况下,我必须使用它) 我需要将文件截断为每行95个字符。每行都有字母数字和空格。我可以选择输入匹配表达式和替换表达式。我希望将替换表达式设置为nothing或\r\n 匹配表达式可以使用什么来选择前95个字符之后的所有内容?您可以使用子字符串来分割字符串,但如果您需要正则表达式,则类似于: ^.{,95} ^.{,95}(.*) (?<=.{

我有一个基于.NET的工具,它允许我对文件中的行进行正则表达式替换,但没有很多其他选项(我这么说是因为我很清楚这不是一个理想的工作工具……在这种情况下,我必须使用它)

我需要将文件截断为每行95个字符。每行都有字母数字和空格。我可以选择输入匹配表达式和替换表达式。我希望将替换表达式设置为nothing或
\r\n


匹配表达式可以使用什么来选择前95个字符之后的所有内容?

您可以使用子字符串来分割字符串,但如果您需要正则表达式,则类似于:

^.{,95}
^.{,95}(.*)
(?<=.{95})(.*)
将匹配字符串上的前95个字符(如果字符串较短,则小于95个)。如果要限制匹配的字符类型,请用其他内容替换

要获取前95个字符之后的字符,可以执行以下操作:

^.{,95}
^.{,95}(.*)
(?<=.{95})(.*)
现在,额外的字符将在捕获组中

使用“向后看”可以执行以下操作:

^.{,95}
^.{,95}(.*)
(?<=.{95})(.*)
(?
替换为:

\1

我真的无法访问捕获组,我不认为。是否有一个表达方式表示“前95个字符以外的所有内容”不使用捕获组?@JeremyHolovacs:当然你可以访问捕获组。这很愚蠢。但是如果你不想使用它们,你可以使用后面的外观。你是对的,我想得太多了。谢谢你的帮助。你知道工具中的正则表达式功能吗?你提到你认为你没有访问捕获组的权限roups,顺便说一句,这是一个非常基本的功能…也许这个工具可以处理它,而你却不知道它?@Jerry这当然有可能…这是一个自制的文件传输工具,添加了一些基本的转换功能…我们的一个供应商要求行正好是95个字符。我可以为每行添加95个空格是的,但是去掉多余的并不是那么简单。那么,试试Matt的建议。你通常可以使用
$1
\1
访问捕获组(对于第一个捕获组)。