Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 命令行:在';x';字符,加上空格_Regex_Text_Command - Fatal编程技术网

Regex 命令行:在';x';字符,加上空格

Regex 命令行:在';x';字符,加上空格,regex,text,command,Regex,Text,Command,我正在创建不同长度文本的测试样本,其中每个样本由一个换行符分隔。目前我有3mb+的文本文件,没有换行符,只有空格。我希望得到正确的reg表达式的帮助,以确保没有换行符将单词切成两半 我对使用reg表达式非常陌生。但我假设,对于长度为300个字符的行,它将在大致范围内的某个地方: /.{300,}\s+/&\n/g (抱歉,我知道这不管用!) 注意:我知道关于这个主题也有类似的帖子,但我相对确定没有专门针对这个场景的帖子 更新:已解决!使用此命令:perl-lpe的/\b(.{803

我正在创建不同长度文本的测试样本,其中每个样本由一个换行符分隔。目前我有3mb+的文本文件,没有换行符,只有空格。我希望得到正确的reg表达式的帮助,以确保没有换行符将单词切成两半

我对使用reg表达式非常陌生。但我假设,对于长度为300个字符的行,它将在大致范围内的某个地方:

/.{300,}\s+/&\n/g
(抱歉,我知道这不管用!)


注意:我知道关于这个主题也有类似的帖子,但我相对确定没有专门针对这个场景的帖子



更新:已解决!使用此命令:
perl-lpe的/\b(.{80300})\b/\1\n/g'文件

您确定数据中没有新行吗?(如果有,则
点字符将不匹配)如果没有换行符,可以使用如下简单方法:

s/\s(.{80,300})\s/$1\n/g
80的下限只是一个任意的选择,如果没有换行符的话,这几乎不会影响结果。如果你想要短一点的线,你可以降低300


编辑:将
\b
更改为
\s
,这可能是一个更好的选择,以避免非单词字符周围出现意外的换行,正如@tchrist所指出的。另外,OP没有说他需要Perl反向引用,所以tchrist将
\1
更改为
$1
,这对Perl来说更有意义。

您是否尝试过
{1300}
?是否必须以这种方式插入新行?你的目标是什么?你可以使用带有自动换行功能的文本编辑器,如果你只想查看它,例如…是的,字符长度非常具体,我正在尝试一些基本的NLP内容并运行一些测试。谢谢,这一切都成功了!我使用了:perl-lpe的/\b(.{80300})\b/\1\n/g'file.txt>file2.txt,它工作得很好。@hmnrscs您确实应该在替换端使用
$1
。另外,您可能希望使用带有
\s
的空格,而不是
\b
,因为否则您会感到奇怪。@tchrist:我在自己的一个3meg文件上测试了这个,没有发现任何奇怪之处。你能描述一下你的意思吗?还请注意,OP上说“解决了!使用此命令时:
perl-lpe的/\b(.{80300})\b/\1\n/g
“文件”,那么您确定要将
\1
更改为
$1
?我不介意你编辑答案,但只要确保你是对的,当OP说我发布的答案对他有用时。@alan添加一个
-w
,你就会看到。是的,我知道我是对的;诚实的奇怪的是,边界只是单词字符和非单词字符之间的过渡,而不是空间边界。这意味着像
3+4=7
这样的东西可能会在加号附近断裂,但不会在等号附近断裂。这不是你通常想要的。@tchrist好吧,在这个特定的用例中,我认为打破
+
是OP最不担心的。但是我想让你教我一些东西:OP没有说他在使用Perl。因此,我使用
\1
作为反向参考。他说它奏效了。它为什么起作用?为什么他不必使用
$1
。(我对Perl几乎一无所知。)