祝大家有美好的一天!我无法根据要求编写正则表达式来完全验证传入的字符串:
- 拉丁文大写小写 (
[A-Za-z]) - 空格、逗号、破折号。
- 字符串以字母 (any) 开头和结尾。
- 仅在字符之间划线。
- 逗号仅在字符后的空格前
我的正则表达式版本:
Pattern pattern = Pattern.compile("([A-Za-z]+\\s)*([A-Za-z]+\\,\\s)*([A-Za-z]+\\-[A-Za-z]+[\\,]*\\s)*[A-Za-z]+");
祝大家有美好的一天!我无法根据要求编写正则表达式来完全验证传入的字符串:
[A-Za-z])我的正则表达式版本:
Pattern pattern = Pattern.compile("([A-Za-z]+\\s)*([A-Za-z]+\\,\\s)*([A-Za-z]+\\-[A-Za-z]+[\\,]*\\s)*[A-Za-z]+");
利用
在 Java 中,您可以在使用方法时不使用
^/ :$matches()正则表达式演示。如果字母之间可以有空格,则替换
(?:, |-)为(?: |, |-)(如果有一个空格)/(?: +|, |-)(如果可以有多个空格)。如果可以有不同的空白字符而不是文字空间,请替换为\s+.细节
^- 线的开始[A-Za-z]+- 1 个或多个字母(?:- 将重复 0 次或更多次的组的开始(?:, |-)- 逗号与空格或破折号[A-Za-z]+- 1 个或多个字母)*- 0 次或多次重复$- 行结束