Regex获取字符串的前X个字符,并将其剪切到最近的单词
我正在尝试组合一个正则表达式,该正则表达式将匹配字符串的前100个字符,而不会截断单词,但保证不会超过100个字符:Regex获取字符串的前X个字符,并将其剪切到最近的单词,regex,string,Regex,String,我正在尝试组合一个正则表达式,该正则表达式将匹配字符串的前100个字符,而不会截断单词,但保证不会超过100个字符: /^(.{0100}[^\s]*)/ 问题是,如果最后一句话结束,这句话会在最后一句话之后中断,而不是在最后一句话之前。我希望在之前剪切-因此,如果我以10个字符为例,这将在以下位置剪切: 快速棕色 当我想把它剪成: 快捷键 提前谢谢 使用负前瞻性尝试此正则表达式: /^(.{0,100}(?!\w))/ 演示:使用负前瞻性尝试此正则表达式: /^(.{0,100}(?!\w)
/^(.{0100}[^\s]*)/
问题是,如果最后一句话结束,这句话会在最后一句话之后中断,而不是在最后一句话之前。我希望在之前剪切-因此,如果我以10个字符为例,这将在以下位置剪切:
快速棕色
当我想把它剪成:
快捷键
提前谢谢 使用负前瞻性尝试此正则表达式:
/^(.{0,100}(?!\w))/
演示:使用负前瞻性尝试此正则表达式:
/^(.{0,100}(?!\w))/
演示:谢谢,但这并没有达到预期的效果-它把单词删去了一半。所以它基本上给了我:
大兄弟
而不是大
,如果我的句子是大棕狐
,我也在那里试过。我认为这是因为“敏捷的棕色狐狸”这个例子在10个字符处自然地删去了一个单词。请改为试试“大棕狐”,或者将字符数改为12。@Phoenix20我更新了我的答案。尝试一下Regex中的负前瞻。谢谢,但这并没有达到预期的效果-它只涉及了单词的一半。所以它基本上给了我:大兄弟
而不是大
,如果我的句子是大棕狐
,我也在那里试过。我认为这是因为“敏捷的棕色狐狸”这个例子在10个字符处自然地删去了一个单词。请改为试试“大棕狐”,或者将字符数改为12。@Phoenix20我更新了我的答案。在正则表达式中尝试负前瞻。