求能捕获行尾句号(若存在)前所有内容的正则表达式
正则表达式:捕获行尾句号前的全部内容
要实现捕获每行中行尾句号(若存在)之前的所有内容,同时保留行内的非行尾句号(比如数字里的1.0),可以使用以下正则表达式:
^(.*?)(?=\.$|$)
正则说明:
^:匹配每行的开头(需开启多行模式,即m标志,让^/$对应每行首尾而非文本整体).*?:非贪婪匹配任意字符,避免过早匹配到行内的句号(?=\.$|$):正向预查,指定终止条件——要么是行尾的句号(\.$),要么是行的结束($)
测试示例:
针对你给出的测试文本:
This line has no number
This line has no number.
This line has 1.0 number
This line has 1.0 number.
匹配结果依次为:
This line has no numberThis line has no numberThis line has 1.0 numberThis line has 1.0 number
代码示例(JavaScript):
const regex = /^(.*?)(?=\.$|$)/gm; const text = `This line has no number This line has no number. This line has 1.0 number This line has 1.0 number.`; const results = Array.from(text.matchAll(regex), match => match[0]); console.log(results);
内容的提问来源于stack exchange,提问作者somethingvague
相关产品推荐
相关产品推荐

