正则表达式用于从字符串中删除表情符号。

12 浏览
0 Comments

正则表达式用于从字符串中删除表情符号。

我有一个Unicode表情符号列表,我想从中删除表情符号(即只想要每行的整个第一部分和末尾的名称)。示例行如下:

1F468 1F3FD 200D 2695 FE0F   ; fully-qualified #  man health worker: medium skin tone
1F469 1F3FF 200D 2695        ; non-fully-qualified #  woman health worker: dark skin tone

(为简单起见,我已删除了一些空格)。我想匹配的是[non-]fully-qualified部分以及#和表情符号,这样我就可以用sed删除它们。我尝试了以下正则表达式:

sed -e 's/\<[on-]*fully-qualified\># *.+?(?=[a-zA-Z]) //g'

它尝试匹配单词[non-]fully-qualified,一个空格,#符号,然后是任何你可以找到的内容(非贪婪),直到第一个字母,并用空字符串替换它。

我希望得到以下输出:

1F468 1F3FD 200D 2695 FE0F   ; man health worker: medium skin tone
1F469 1F3FF 200D 2695        ; woman health worker: dark skin tone

我已尝试了几个已发布的答案,但都没有成功,并且我正在尝试匹配两个边界之间的模式,这就是我遇到麻烦的地方。

编辑:我正在尝试在随git for windows一起提供的git bash中运行该命令。

0
0 Comments

正则表达式是一种强大的文本处理工具,可以用来匹配、查找和替换字符串中的特定模式。在这篇文章中,我们将讨论如何使用正则表达式来删除字符串中的表情符号。

问题的出现是因为作者想要删除字符串中的表情符号。他首先尝试了一个正则表达式:sed 's/;.*fully-qualified\s*#[^a-zA-Z]*/; /',这个正则表达式的意思是匹配以分号开头的任意字符,后面跟着"fully-qualified"文本,然后是任意数量的空格,再后面是一个井号,最后是不是字母的任意字符。作者希望用一个分号和一个空格来替换匹配到的内容。

然而,作者发现这个正则表达式并没有达到预期的效果。问题似乎是因为正则表达式中的[a-zA-Z]匹配到了除了字母以外的其他字符。为了解决这个问题,作者提出了一个快速的解决方法,即在sed命令之前加上LC_ALL=C,这样就可以确保[a-zA-Z]只匹配a到z和A到Z之间的字母,而不匹配其他字符。

作者尝试了这个方法,并发现它确实解决了问题。他还在文章中提到了LC_ALL的作用,它可以强制将输入视为简单的ASCII字符,而不会受到Windows编码的影响。这对于以后的工作可能会非常有用。

总之,通过使用正则表达式和LC_ALL=C命令,作者成功地解决了从字符串中删除表情符号的问题。这个方法非常简单有效,可以帮助我们处理文本中的其他特定模式。

0
0 Comments

问题的出现原因是需要从字符串中删除表情符号,但是使用的sed命令在Windows版本中无法正常工作。解决方法是尝试不同的sed命令,但是仍然无法得到预期的输出。问题可能是源文件的编码不是UTF-8,或者sed命令在遇到非ASCII字符时出现故障。

解决方法的尝试包括使用不同的sed命令以及检查源文件的编码。尽管尝试了多种方法,但问题仍未得到解决。建议在讨论中继续探讨该问题。

这篇文章讨论了一个名为"Regex to delete emojis from string"的问题。问题的出现原因是需要从字符串中删除表情符号。提供了多个解决方法,但是没有得到预期的输出。问题可能是源文件的编码不是UTF-8,或者sed命令在遇到非ASCII字符时出现故障。建议在讨论中继续探讨该问题。

0