Java 现有正则表达式中的更多正则表达式标准

Java 现有正则表达式中的更多正则表达式标准,java,regex,Java,Regex,我想在下面的正则表达式中添加,该正则表达式也通过以下标准- ^[\p{L}\d'][ \p{L}\d'-]*[\p{L}\d'-']$ 只能以字母(A-Z或A-Z)开头 也只能接受一封信 在字符串或字符串结尾之间接受连字符(-)、空格、点()。(无其他特殊字符) 接受介于和字符串结尾之间的数字 请也希望达到现有的标准这个正则表达式正在做什么 例如 预期的- t, T, test, test123, te12st, te-st, te.st, te st, éééééé, ṪỲɎɆḂɃɀȿȸȺȔ

我想在下面的正则表达式中添加,该正则表达式也通过以下标准-

^[\p{L}\d'][ \p{L}\d'-]*[\p{L}\d'-']$
  • 只能以字母(A-Z或A-Z)开头
  • 也只能接受一封信
  • 在字符串或字符串结尾之间接受连字符(
    -
    )、空格、点(
    )。(无其他特殊字符)
  • 接受介于和字符串结尾之间的数字
  • 请也希望达到现有的标准这个正则表达式正在做什么

    例如

    预期的-

    t, T, test, test123, te12st, te-st, te.st, te st, éééééé, ṪỲɎɆḂɃɀȿȸȺȔȐȳɊÉâÇë, Επίθετο
    
    12test, 1, .test, -test, , tes*t (none of the special character except hyphen, dot & space),  
    
    预计不到-

    t, T, test, test123, te12st, te-st, te.st, te st, éééééé, ṪỲɎɆḂɃɀȿȸȺȔȐȳɊÉâÇë, Επίθετο
    
    12test, 1, .test, -test, , tes*t (none of the special character except hyphen, dot & space),  
    
    这是一个可能的解决方案,但是这些测试标准与您的第一个要求冲突:俎,ṪỲɎɆḂɃɀȿȸȺȔȐȳɊÉâÇë, Επίθετο. 其中1)接受一个或多个A-Za-z,然后2)接受零个或多个字母、数字、连字符、空格和句点的组合

    如果您希望它也接受这三个测试标准,那么这是一个可能的解决方案:

    ^[\p{L}]+[\p{L}\d-.\s]*$
    

    要匹配包含单个字母的预期值和非预期值,可以从字符串开头匹配
    \pL
    。然后重复0+次
    [\d\pL.-]
    中列出的任何操作,然后断言字符串的结尾

    请注意,并非所有的预期目标都是从a-zA-Z开始的

    ^\pL[\d\pL .-]*$
    
    在爪哇

    String regex = "^\\pL[\\d\\pL .-]*$";
    

    |

    ^\\p{L}[\\p{L}\\d.-]*$
    要解决要点#1您需要
    ^[A-za-z]{1}[\\p{L}\\d'][\\p{L}\\d'-]*[\\p{L}\\d'-]$
    您能提供一个示例输入和预期匹配吗?@MonkeyZeus,我已经用预期匹配更新了这个问题。
    ṪỲɎɆḂ有效吗?它不符合您提出的正则表达式,也不符合您发布的要求。