Regex忽略末尾空格获取句子除最后单词外内容的问题咨询
问题描述
我有如下正则表达式:
使用该正则可以获取句子除最后一个单词外的全部内容,但当末尾单词尾部带有空格时,匹配就会出现问题,示例如下:
修复方案
原有正则的问题在于默认要求最后一个单词紧邻字符串结尾,没有兼容末尾存在多余空格的场景,修改正则为以下形式即可解决问题:^.*(?=\s+\w+\s*$)
规则说明
^.*匹配从字符串开头起的所有内容- 正向预查部分匹配末尾特征:
\s+匹配最后一个单词前的间隔空格\w+匹配最后一个单词本身\s*匹配单词末尾可能存在的任意数量空白$锚定到字符串结尾位置
如果你的使用场景中最后一段内容包含非字母/数字/下划线的字符,可以把\w+替换为\S+,适配任意非空格组成的末尾片段:^.*(?=\s+\S+\s*$)
内容的提问来源于stack exchange,提问作者Carlos Felipe Gonzalez
相关产品推荐
相关产品推荐

