如何在LibreOffice Writer中使用正则表达式保留每个单词的首字母并删除其余字符?
如何在LibreOffice Writer中使用正则表达式保留每个单词的首字母并删除其余字符?
嘿,我刚好知道怎么解决这个问题!LibreOffice Writer的正则规则和Word确实有点不一样,之前的方法不管用很正常,我给你一步步说怎么操作:
- 首先打开你的文档,按下
Ctrl+H调出「查找和替换」对话框 - 点击对话框里的「更多选项」,找到「正则表达式」并勾选它(这步至关重要,不然正则不会生效)
- 在「查找内容」输入框里填入:
(\b\w)(\w+) - 在「替换为」输入框里填入:
$1 - 最后点击「全部替换」,搞定!
这个正则的逻辑很简单:\b\w匹配每个单词的首字母(\b是单词边界,确保我们抓的是每个单词的第一个字符),(\w+)匹配首字母之后的所有字母,替换成$1就只保留了首字母。标点符号、空格和大小写都会完整保留,完全符合你给的例子效果——原句:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
替换后会变成:
L i d s a, c a e, s d e t i u l e d m a.
如果你遇到带连字符的单词(比如mother-in-law),这个方法也会自动保留每个拆分部分的首字母,变成M-i-l,很实用。
另外如果你不想用LibreOffice,也可以用Python脚本快速处理,代码示例如下:
import re original_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." processed_text = re.sub(r'(\b\w)(\w+)', r'\1', original_text) print(processed_text)
备注:内容来源于stack exchange,提问作者Mordork
相关产品推荐
相关产品推荐

