Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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_String - Fatal编程技术网

Regex获取字符串的前X个字符,并将其剪切到最近的单词

Regex获取字符串的前X个字符,并将其剪切到最近的单词,regex,string,Regex,String,我正在尝试组合一个正则表达式,该正则表达式将匹配字符串的前100个字符,而不会截断单词,但保证不会超过100个字符: /^(.{0100}[^\s]*)/ 问题是,如果最后一句话结束,这句话会在最后一句话之后中断,而不是在最后一句话之前。我希望在之前剪切-因此,如果我以10个字符为例,这将在以下位置剪切: 快速棕色 当我想把它剪成: 快捷键 提前谢谢 使用负前瞻性尝试此正则表达式: /^(.{0,100}(?!\w))/ 演示:使用负前瞻性尝试此正则表达式: /^(.{0,100}(?!\w)

我正在尝试组合一个正则表达式,该正则表达式将匹配字符串的前100个字符,而不会截断单词,但保证不会超过100个字符:

/^(.{0100}[^\s]*)/

问题是,如果最后一句话结束,这句话会在最后一句话之后中断,而不是在最后一句话之前。我希望在之前剪切-因此,如果我以10个字符为例,这将在以下位置剪切:

快速棕色

当我想把它剪成:

快捷键


提前谢谢

使用负前瞻性尝试此正则表达式:

/^(.{0,100}(?!\w))/

演示:

使用负前瞻性尝试此正则表达式:

/^(.{0,100}(?!\w))/

演示:

谢谢,但这并没有达到预期的效果-它把单词删去了一半。所以它基本上给了我:
大兄弟
而不是
,如果我的句子是
大棕狐
,我也在那里试过。我认为这是因为“敏捷的棕色狐狸”这个例子在10个字符处自然地删去了一个单词。请改为试试“大棕狐”,或者将字符数改为12。@Phoenix20我更新了我的答案。尝试一下Regex中的负前瞻。谢谢,但这并没有达到预期的效果-它只涉及了单词的一半。所以它基本上给了我:
大兄弟
而不是
,如果我的句子是
大棕狐
,我也在那里试过。我认为这是因为“敏捷的棕色狐狸”这个例子在10个字符处自然地删去了一个单词。请改为试试“大棕狐”,或者将字符数改为12。@Phoenix20我更新了我的答案。在正则表达式中尝试负前瞻。