Regex PCRE正则表达式。允许使用拉丁语、希伯来语和希腊语字符
条件:Regex PCRE正则表达式。允许使用拉丁语、希伯来语和希腊语字符,regex,pcre,Regex,Pcre,条件: 字符串可以包含拉丁字符 字符串可以包含希伯来语字符 字符串可以包含0、1、2个希腊字符 示例: A==>很好 b==>很好 β==>好 ג===>很好 aβ==>良好 aaaββג===>良好 aaaβגגג===>良好 aβaβaa===>良好 aβaaββ===>坏 在那一刻,我有这个,但无法控制希腊的极限 /^[\p{拉丁语}\p{希伯来语}\p{希腊语}]+$/u 我想你会需要这种(不可读的)方式 带有\1\2\1\2\1的重复组不起作用,因为它们匹配的是完全相
- 字符串可以包含拉丁字符
- 字符串可以包含希伯来语字符
- 字符串可以包含0、1、2个希腊字符
- A==>很好
- b==>很好
- β==>好
- ג===>很好
- aβ==>良好
- aaaββג===>良好
- aaaβגגג===>良好
- aβaβaa===>良好
- aβaaββ===>坏
我想你会需要这种(不可读的)方式 带有\1\2\1\2\1的重复组不起作用,因为它们匹配的是完全相同的字符串,而不是模式
此正则表达式与您的示例相匹配您可以使用一个简单的正则表达式,该正则表达式现在允许3个希腊字符,同时允许所有其他字符:
/^(?!(?:\P{Greek}*\p{Greek}){3})[\p{Latin}\p{Hebrew}\p{Greek}]+$/u
看。您可以使用更多类似的条件轻松自定义模式
详细信息
-字符串的开头^
-立即从字符串开始,尝试匹配零个或多个非希腊字母的3个重复((?!(?:\P{Greek}*\P{Greek}{3})
,在演示中,它被替换为\P{Greek}*
以正确匹配多行输入中的行),然后是希腊字母,如果找到匹配项,整个正则表达式匹配失败(未返回匹配)[^\n\P{Greek}]*
-1个或多个希腊语、拉丁语或希伯来语字母[\p{拉丁语}\p{希伯来语}\p{希腊语}]+
-字符串的结尾(或者更好地使用$
来匹配字符串的结尾)\z
/^(?!(?:\P{Greek}*\p{Greek}){3})[\p{Latin}\p{Hebrew}\p{Greek}]+$/u