有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java正则表达式,允许字母表和选定的特殊字符只出现一次

我需要为名称字段使用正则表达式。名称只能是字母。name字段的其他要求是它可以包含 但不必有以下任何一个字符:撇号(')、磅(#)或连字符(-) 到目前为止,我有这个

 [\\w]*[\'#-]?

这将检查特殊字符,但仅检查字符串的末尾。 比如说

JohnO'Connell -> returns false -> should return true

JohnOConnell' -> returns true -> expected behavior
JohnOConnell# -> returns true -> expected behavior
JohnOConnell- -> returns true -> expected behavior
JohnOConnell-# -> returns false -> expected behavior

如何将其更新到

谢谢


共 (2) 个答案

  1. # 1 楼答案

    你就快到了:

    ^[a-zA-Z]+['#-]?[a-zA-Z]*$
    

    在中间部分,只做'#-是可选的

  2. # 2 楼答案

    这一个允许任何unicode字母:

    ^\pL+['#-]?\pL+$