【发布时间】:2020-06-09 03:04:01
【问题描述】:
如何使用正则表达式将fossil 转换为fossil?
【问题讨论】:
-
分享您的研究对每个人都有帮助。告诉我们您尝试了什么以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案。另见:How to Ask
-
是的,但是反对派似乎有点荒谬......
如何使用正则表达式将fossil 转换为fossil?
【问题讨论】:
您在浏览器中实际拥有的是所谓的全字母拉丁小写字母,它与标准宽度的fossil 不同。
如果这个问题更广泛,你如何将 UTF-8 全宽转换为标准 ASCII 设置的拉丁字符,据我所知,你必须明确地做到这一点。我不知道任何图书馆,但可能有。
如果全角编码与标准字符集的顺序相同,您可以使用的另一件事是在二进制编码中添加一个特定数字。
字符编码:
f - U+FF46
o - U+FF4F
s - U+FF53
i - U+FF49
l - U+FF4C
【讨论】:
你可以试试这个:
echo 'f o s s i l' | sed 's_ __g'
结果将是fossil
说明
sed 是流编辑器。 s_<text to replace>_<replacement>_g 格式告诉 sed 将空白替换为空。换句话说,删除空白。
如果你想使用tr 命令,你可以这样做:
echo 'f o s s i l' | tr -d "[:blank:]"
这将删除空白并导致fossil。
说明
tr 已翻译。 -d 告诉 translate 删除空格,用 [:blank:] 注明
【讨论】:
s_ __g有什么神奇之处,可以分享一下链接吗?
'_' 而不是不涉及路径分隔符的'/'?
/ 被用作标准分隔符,但我遇到了必须转义斜杠然后 sed 正则表达式看起来很神秘的情况。使用下划线作为分隔符让我看起来更容易阅读。