我尝试与任何语言的 java 8 正则表达式字符串匹配
\n\n只要包含字母、数字和./或-
String s = "\xd7\x91\xd7\x9c\xd7\x94 \xd7\x91\xd7\x9c\xd7\x94";\nString pattern= "^[\\\\p{L}\\\\p{Digit}_.-]*$";\nreturn s.matches(pattern);\nRun Code Online (Sandbox Code Playgroud)\n\n我缺少什么,因为此代码为希伯来语有效字符串返回 null 。
\n您可以在模式中添加空格,并在传递标志时使用\\w而不是:\\p{L}\\p{Digit}_Pattern.UNICODE_CHARACTER_CLASS
String s = "\xd7\x91\xd7\x9c\xd7\x94 \xd7\x91\xd7\x9c\xd7\x94";\nString pattern= "(?U)[\\\\w\\\\s.-]*";\nSystem.out.println(s.matches(pattern));\n// => true\nRun Code Online (Sandbox Code Playgroud)\n\n查看Java 演示
\n\n由于该模式在方法内部使用String#matches(),因此不需要^和锚点。$如果您打算在该方法中使用该模式Pattern#find(),请将模式包含在锚点内,如原始代码 ( "^(?U)[\\\\w\\\\s.-]*$") 中所示。
图案详情:
\n\n(?U)-Pattern.UNICODE_CHARACTER_CLASS嵌入式修饰符标志,使速记字符类能够识别 Unicode(您可能会看到\\w在此模式下匹配的内容)[\\\\w\\\\s.-]*- 零个或多个:\n\n\\w- 单词字符(字母、数字_等)\\s- 空格.- 一个点(不需要在字符类中转义它)-- 连字符(不需要,因为它位于字符类的末尾)| 归档时间: |
|
| 查看次数: |
2132 次 |
| 最近记录: |