在使用正则表达式时如何处理波兰字符?

13
我有一个街道名称为 KRZYWOŃ ANIELI,那么我应该如何编写正则表达式来允许这种表达方式?目前我的简单正则表达式为/^[a-zA-Z ]+$/
请给出建议。

根据语言、正则表达式的风格以及它如何处理本地化,情况可能会有所不同。因此,请为您的语言添加一个标签。 - Christoffer Hammarström
你使用哪种编程语言?JavaScript? Perl? 还是像 sed 或 Notepad++ 这样的工具? - Alan Moore
没关系;根据你之前两次提问的内容,这个语言是PHP。 - Alan Moore
2
你应该对关于这个主题的答案和你之前的问题进行评论。答案已经给出,但你似乎忽略了它们,没有更多地澄清你的问题,而是不断地开新问题,这些问题基本上都是相同的。这是浪费时间。请说明给出的答案为何不足够解决你的问题。 - BalusC
4个回答

19

请使用 /^[\s\p{L}]+$/u 这条正则表达式(PHP 语法)。

编辑:修正了正则表达式以更好地处理空格。


@Gumbo,是的,当然。我试图调整正则表达式以符合OP的预期。 - Brock Adams
请问一下,末尾的/u具体是什么意思? - Uladz Kha

8

\p{L}不仅可以匹配波兰字母,还可以匹配俄语字母等其他字母。

如果您只需要匹配波兰字母,可以使用以下内容:

[AaĄąBbCcĆćDdEeĘęFfGgHhIiJjKkLlŁłMmNnŃńOoÓóPpRrSsŚśTtUuWwYyZzŹźŻż]

以下内容来自维基百科,介绍了波兰字母表中的字符:


4

我使用了:

[UserName=[A-Za-zżźćńółęąśŻŹĆĄŚĘŁÓŃ]* [A-Za-zżźćńółęąśŻŹĆĄŚĘŁÓŃ]*\]

对于名字和姓氏都适用。


我怀疑这并没有帮助,甚至可能根本不起作用。如果想让我改变看法,请添加一份说明,解释它的工作原理以及为什么它应该有所帮助。 - Yunnosch
抱歉,@HubertKubiak的“那行”并没有增加任何可信度。这就是为什么我要求解释的原因。 - Yunnosch
@Yunnosch 这个集合包含所有波兰字母。我不确定还需要什么解释。 - Hubert Kubiak

0

我已经看过了,但是我是新手,所以如果您能指导一下正则表达式,我会非常感激。 - Rachel
我会尝试,但我现在很忙,所以如果今晚没有其他人加入的话。 - PurplePilot
你可能想要用Unicode类\p{L}或\p{Letter}替换你的字符类:任何语言中的任何字母。 - dsolimano
@dsolimani - 这该怎么做呢?我已经尝试使用/^[a-zA-Z \\p{L}\+u]+$/,但它并没有起作用,所以我现在卡住了。有什么建议吗? - Rachel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接