javascript正则表达式在句点后添加换行符
我试图在javascript中使用正则表达式,在格式化为html变量的json数据的每个句子后添加一个换行符 仅仅根据句点来定位它是不起作用的——json数据中似乎有额外的字符,或者其他导致每3或4个单词换行的东西 所以我试着用大写字母来寻找一个具有前瞻性的时期。但这是在每个大写字母之前加上换行符,而不仅仅是在句号之后 我对正则表达式非常陌生,所以任何帮助都会非常有用 现在,后跟大写字母的期间的搜索参数是:javascript正则表达式在句点后添加换行符,javascript,regex,Javascript,Regex,我试图在javascript中使用正则表达式,在格式化为html变量的json数据的每个句子后添加一个换行符 仅仅根据句点来定位它是不起作用的——json数据中似乎有额外的字符,或者其他导致每3或4个单词换行的东西 所以我试着用大写字母来寻找一个具有前瞻性的时期。但这是在每个大写字母之前加上换行符,而不仅仅是在句号之后 我对正则表达式非常陌生,所以任何帮助都会非常有用 现在,后跟大写字母的期间的搜索参数是:/(?=[a-Z])/g javascript是:description.replace(
/(?=[a-Z])/g
javascript是:description.replace(/。(?=[A-Z])/g,
)代码>两个问题。
RegExp中的第一个
表示“任意字符”。
其次,我认为您不需要?=
。我想你可能在找这样的东西:
/\.(\s+)[A-Z]/g
句点
是匹配任何单个字符的通配符。要匹配实际的句点,必须在正则表达式中转义它。
因此您的行
description.replace(/.(?=[A-Z])/g,
)代码>
变成
description.replace(/\.(?=[A-Z])/g,
)代码>
我没有对此进行任何测试以检查正则表达式的其余部分。您需要像这样转义
,因此它与任何字符都不匹配
description.replace(/\.(?=[A-Z])/g, '<br /><br />');
description.replace(/\.(?=[A-Z])/g,
);
对于更复杂的句子结构,包括引号、括号等。这是我提出的解决方案():
正则表达式:
([^\dA-Z][\.!?][\)\]'"”’]* +)
替换字符串:
$1\n
哦,是的,谢谢你,这就很好地解释了。。。这是正确的,但现在我用换行符替换句号和大写字母。您知道replace参数应该是什么,以便它包含匹配的项吗?因此,replace术语应该是句点+换行符+大写字母?我试过了\1。谢谢所有人的帮助--这就得到了:description.replace(/(\.(\s+)/g,\$1
);在上面的示例中,您不需要(\s+)周围的参数,只需要(\.\s+),而且您不需要\$1和
之间的空格。这将进行最后的替换调用:description.replace(/(\.\s+)/g,\$1
);这里有一个正则表达式教程: