Regex 正则表达式来对字符串进行英语化?

Regex 正则表达式来对字符串进行英语化?,regex,unicode,special-characters,Regex,Unicode,Special Characters,是否有一个通用正则表达式来替换非英语语言中所有已知的特殊字符: é, ô, ç, etc. 英文字符: e, o, c, etc. 这个任务就是图书馆的任务。了解如何用你正在学习的语言来使用它 很可能您的库已经有了它的绑定此任务就是库的用途。了解如何用你正在学习的语言来使用它 很可能您的库已经有了它的绑定不,没有这样的正则表达式。请注意,使用正则表达式可以“描述”特定的文本 特定的正则表达式实现可能会提供使用正则表达式进行替换的可能性,但这些替换通常只通过一次替换来执行:不使用A'替换A'和

是否有一个通用正则表达式来替换非英语语言中所有已知的特殊字符:

é, ô, ç, etc.
英文字符:

e, o, c, etc.
这个任务就是图书馆的任务。了解如何用你正在学习的语言来使用它

很可能您的库已经有了它的绑定

此任务就是库的用途。了解如何用你正在学习的语言来使用它


很可能您的库已经有了它的绑定

不,没有这样的正则表达式。请注意,使用正则表达式可以“描述”特定的文本

特定的正则表达式实现可能会提供使用正则表达式进行替换的可能性,但这些替换通常只通过一次替换来执行:不使用
A'
替换
A'
b
替换
b'


也许您正在使用的语言在其API中有一个方法来执行这种替换,但它不会使用正则表达式

不,没有这样的正则表达式。请注意,使用正则表达式可以“描述”特定的文本

特定的正则表达式实现可能会提供使用正则表达式进行替换的可能性,但这些替换通常只通过一次替换来执行:不使用
A'
替换
A'
b
替换
b'

也许您正在使用的语言在其API中有一个方法来执行这种替换,但它不会使用正则表达式

“是的⅁乌普⅂IɅ 这是做不到的,你不应该想这样做!这是对全世界的冒犯,相信立面与拱廊押韵,或者认为科罗拉多州的卡尼翁市属于教会法律,这是天真到无知的地步

您可以通过Unicode规范化表单D运行字符串并丢弃标记字符,但我肯定不会告诉您如何操作,因为它是邪恶和错误的。它是邪恶的,原因已经概述,它是错误的,因为有无数的案件,它根本没有解决

学习材料 以下是您需要阅读的内容:

  • 本附录描述了Unicode文本的规范化格式。当实现将字符串保持为规范化形式时,可以确保等价字符串具有唯一的二进制表示形式。本附录还提供了示例、有关Unicode文本规范化的附加规范以及有关Unicode规范化表单一致性测试的信息
  • 本文档描述了在UAX#15 Unicode规范化表单[UAX15]中定义的规范等价下高效处理文本的方法和格式
  • 本报告是Unicode排序算法(UCA)的规范,详细说明了如何在保持符合Unicode标准要求的同时比较两个Unicode字符串。UCA还提供默认的Unicode排序元素表(DUCET)作为指定所有Unicode字符的默认排序顺序的数据
你必须学会如何用一种有意义的方式比较字符串,而破坏它们根本就没有任何意义 [pəʇələp] 永远

您决不能只是逐代码点比较非规范化字符串,如果可能,您需要考虑语言,因为它们之间的规则不同

实例 无论您使用的是哪种编程语言,它都可以帮助您阅读Perl和模块的文档

例如,要在包含
“muß”
的文本中搜索
“MÜSS”
,您可以执行以下操作:

my $Collator = Unicode::Collate->new( normalization => undef, level => 1 );
                                     # (normalization => undef) is REQUIRED.
  my $str = "Ich muß studieren Perl.";
  my $sub = "MÜSS";
  my $match;
  if (my($pos,$len) = $Collator->index($str, $sub)) {
      $match = substr($str, $pos, $len);
  }
这将把
“muß”
放入
$match

Unicode::Collate::Module支持根据以下地区进行裁剪:

 af                Afrikaans
 ar                Arabic
 az                Azerbaijani (Azeri)
 be                Belarusian
 bg                Bulgarian
 ca                Catalan
 cs                Czech
 cy                Welsh
 da                Danish
 de__phonebook     German (umlaut as 'ae', 'oe', 'ue')
 eo                Esperanto
 es                Spanish
 es__traditional   Spanish ('ch' and 'll' as a grapheme)
 et                Estonian
 fi                Finnish
 fil               Filipino
 fo                Faroese
 fr                French
 ha                Hausa
 haw               Hawaiian
 hr                Croatian
 hu                Hungarian
 hy                Armenian
 ig                Igbo
 is                Icelandic
 ja                Japanese [1]
 kk                Kazakh
 kl                Kalaallisut
 ko                Korean [2]
 lt                Lithuanian
 lv                Latvian
 mk                Macedonian
 mt                Maltese
 nb                Norwegian Bokmal
 nn                Norwegian Nynorsk
 nso               Northern Sotho
 om                Oromo
 pl                Polish
 ro                Romanian
 ru                Russian
 se                Northern Sami
 sk                Slovak
 sl                Slovenian
 sq                Albanian
 sr                Serbian
 sv                Swedish
 sw                Swahili
 tn                Tswana
 to                Tonga
 tr                Turkish
 uk                Ukrainian
 vi                Vietnamese
 wo                Wolof
 yo                Yoruba
 zh                Chinese
 zh__big5han       Chinese (ideographs: big5 order)
 zh__gb2312han     Chinese (ideographs: GB-2312 order)
 zh__pinyin        Chinese (ideographs: pinyin order)
 zh__stroke        Chinese (ideographs: stroke order)

你有一个选择:你可以把这件事做好,或者你根本做不到如果你做错了,没有人会感谢你。

正确的做法意味着要考虑UAX 15和UTS 10

在今天这个时代,没有比这更令人接受的了。你知道,现在已经不是60年代了

“是的⅁乌普⅂IɅ 这是做不到的,你不应该想这样做!这是对全世界的冒犯,相信立面与拱廊押韵,或者认为科罗拉多州的卡尼翁市属于教会法律,这是天真到无知的地步

您可以通过Unicode规范化表单D运行字符串并丢弃标记字符,但我肯定不会告诉您如何操作,因为它是邪恶和错误的。它是邪恶的,原因已经概述,它是错误的,因为有无数的案件,它根本没有解决

学习材料 以下是您需要阅读的内容:

  • 本附录描述了Unicode文本的规范化格式。当实现将字符串保持为规范化形式时,可以确保等价字符串具有唯一的二进制表示形式。本附录还提供了示例、有关Unicode文本规范化的附加规范以及有关Unicode规范化表单一致性测试的信息
  • 本文档描述了在UAX#15 Unicode规范化表单[UAX15]中定义的规范等价下高效处理文本的方法和格式
  • 本报告是Unicode排序算法(UCA)的规范,详细说明了如何在保持符合Unicode标准要求的同时比较两个Unicode字符串。UCA还提供默认的Unicode排序元素表(DUCET)作为指定所有Unicode字符的默认排序顺序的数据
你必须学会如何用一种有意义的方式比较字符串,而破坏它们根本就没有任何意义 [pəʇələp] 永远

绝不能只按co比较非规范化字符串和代码点