我试图在javascript中使用正则表达式在每个句子后添加一个换行符,将json数据格式化为html变量。
仅基于句点找不到它 - json数据中似乎有额外的字符或其他每3或4个单词导致换行的字符。
所以我试图寻找一个大写字母前瞻的时期。但这是在每个大写字母之前添加换行符,而不仅仅是跟随一段时间的换行符。
我对正则表达式很陌生,所以任何帮助都会非常有帮助!
现在,大写字母后跟大写字母的搜索参数为:/.(?=[A-Z])/g
javascript是:description.replace(/.(?=[A-Z])/g, '<br /><br />');
答案 0 :(得分:1)
一些问题。
RegEx中的第一个.
表示“任何字符”。
其次,我认为你不需要?=
。我想你可能正在寻找这样的东西:
/\.(\s+)[A-Z]/g
答案 1 :(得分:0)
句点.
是匹配任何单个字符的通配符。要匹配实际的时间段,您必须在正则表达式\.
中将其转义为行
description.replace(/.(?=[A-Z])/g, '<br /><br />');
变为
description.replace(/\.(?=[A-Z])/g, '<br /><br />');
我还没有对此进行任何测试来检查其余的正则表达式。
答案 2 :(得分:0)
你需要像这样逃避你的.
。所以它与任何角色都不匹配。
description.replace(/\.(?=[A-Z])/g, '<br /><br />');
答案 3 :(得分:0)
对于更复杂的句子结构,包括引号,括号等,这是我提出的解决方案(gist):
正则表达式:
([^\dA-Z][\.!?][\)\]'"”’]* +)
替换字符串:
$1\n