gpt4 book ai didi

java - 为什么 [a-z][A-Z] 给出的结果与 [ą-ž][Ą-Ž] 不同?

转载 作者:行者123 更新时间:2023-12-01 07:48:05 28 4
gpt4 key购买 nike

我正在尝试分割其中有一个小写字母后跟一个大写字母的文本。

假设文本是:

“Įvairių rūšiųSkinti kardeliai”

我想在“ųS”处拆分它,但是以下正则表达式“[ą-ž][Ą-Ž]”给了我:

“Įvairių r”

但是当我将母语字母和正则表达式更改为“[a-z][A-Z]”时

“Ivairiu rusiuSkinti kardeliai”

我得到了预期的结果:

“Ivairiu rusi”

最佳答案

[a-z] 意思是“匹配从a到z的字符”,对吧?我们人类倾向于认为显然 b 在 a 之后,c 在 b 之后......等等。所以 a-z 将覆盖所有小写字母。

然而,实际发生的情况是 a-z 匹配 az 之间的任何 Unicode 代码点,恰好全部为小写字母。

让我们看看 ą 和 ž 之间有哪些代码点。

ąĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽž

[ą-ž] 将匹配上述任何字符!这不是你想要的,是吗?

要解决这个问题,您可以

  • 输入所有小写字母并将其放入[]中。对大写字母执行相同操作,或者;
  • 使用字符类,例如 \p{Lu} 表示大写字母,\p{Ll} 表示小写字母。

关于java - 为什么 [a-z][A-Z] 给出的结果与 [ą-ž][Ą-Ž] 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45407746/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com