Javascript 要匹配“.”的正则表达式,但不在“上午”中`
我需要一个正则表达式来匹配字符串中的所有点,但如果它是Javascript 要匹配“.”的正则表达式,但不在“上午”中`,javascript,regex,Javascript,Regex,我需要一个正则表达式来匹配字符串中的所有点,但如果它是a.m.或p.m.的一部分,则不需要 现在。是下午5点,而且已经很晚了… 我需要它在JS环境中工作 是的,我正在劈开一根绳子 str=`Now。是下午5点而且已经很晚了…`; 结果=str.split(/[.]/); 我得到了 [“现在”、“现在”、“下午5点”、“下午5点”、“而且要迟到了”、、、、][code] 而我需要 [“现在”、“现在”、“下午5点而且要迟到了”、、、、、]这样做: string.match(/(?:\b[ap]\
a.m.
或p.m.
的一部分,则不需要
现在。是下午5点,而且已经很晚了…
我需要它在JS环境中工作
是的,我正在劈开一根绳子
str=`Now。是下午5点而且已经很晚了…`;
结果=str.split(/[.]/);
我得到了[“现在”、“现在”、“下午5点”、“下午5点”、“而且要迟到了”、、、、][code]
而我需要[“现在”、“现在”、“下午5点而且要迟到了”、、、、、]
这样做:
string.match(/(?:\b[ap]\.m\b\.?|\d+:\d+|[^.:])+|(?<=\.)(?=\.|(?<=\.\.)$)/gi)
string.match(/(?:\b[ap]\.m\b\.?\d+:\d+[^.:])+(?您可以将以下基于查找的正则表达式解决方案用于拆分
:
/\.(?<!\b[pa]\.(?:m\.)?)/i
那么,您正在拆分一个字符串,是吗?您当前的表达式是什么?您使用的方法是什么?添加了澄清您可以尝试使用基于lookback的正则表达式,如/\。(?编写正匹配正则表达式比编写负匹配正则表达式更容易。用占位符替换a.m和p.m可能更容易,进行拆分,然后反向替换。复杂正则表达式的一个警告是,它可以在各种dos攻击中对您使用。下一次,请在注释中添加@
+用户名,以便用户我会收到你的反馈。我无意中注意到你的问题被编辑了。谢谢。看起来令人费解,不过…@avalanche1你期望什么?我从来没有期望过任何东西。这样我就不会失望,只会得到惊喜;))这看起来很优雅。但是为什么第二个点是可选的呢?@avalanche1第二个点不是可选的。整个m.
模式是可选的,因为必须对a.
/p.
和m.
中的点进行检查。你能用外行术语解释一下什么是负向后看
吗?我想把你的名字加上@但它不会让我,我死后会把它抹掉post@avalanche1负lookback是一种零宽度断言,如果lookback模式与当前位置左侧的文本位置立即匹配,则匹配将失败。您不需要在此处使用@
+名称,因为您撰写评论的帖子的作者总是会收到通知e评论。
/\.(?<!\b[pa]\.(?:m\.)?)/i