我试图在<p>
标记内找到第一句话。我认为句子以第一个&#34; final&#34;结束。点,即当它进入&#34;点空间大写&#34;,以跳过缩写。
echo "<p>this will def. fail. So. Sad.</p>" | sed -r -e "s/<p>(([^\.]*\. [^A-Z])*[^\.]*\.) [A-Z]/\1/g"
预期结果是this will def. fail.
,我尝试用\ 1
它适用于regex101,但与终端上的sed一起使用时返回this will def. fail.o. Sad.</p>
。
答案 0 :(得分:0)
您需要.*
来抓住其余部分:
echo "<p>this will def. fail. So. Sad.</p>" |
LANG=C sed -r -e "s/<p>(([^\.]*\. [^A-Z])*[^\.]*\.) [A-Z].*/\1/g"
# ^ huh? ^^
this will def. fail.
这是一个小问题。
令我头疼的是,在那次修复后它仍然无法正常工作。实际上需要进行一些调查才能发现在我的平台上我需要set the locales。我想你有同样的问题。