我需要一些帮助来编写正则表达式。
这是我的第一个正则表达式(匹配英语或希伯来语字符):
/^(?:[\u0590-\u05FF\uFB1D-\uFB40]+|[\w]+)$/i
这应该匹配:abc,אבג 这不应该匹配:a,b,aא
它工作正常,我只需要为超过1个字符添加限制。
下一个应该与上面的一个完全相同(包括超过1个字符 限制)但也允许空格。 这应该匹配:abcx,abcx ascx,דגהק,שגדדשגב 这不应该匹配:a,b,asaceדגעההת,ascasvאקיכרעקכ
最后一个Regex表达式应该是所有数字,包含正好10个数字 并从数字05开始。 这应该匹配:0528547114 这不应该匹配:数字,特殊字符,少于或多于 10位数。 我正在使用JS和C#Regex。 任何帮助将不胜感激。
答案 0 :(得分:2)
要匹配多个字符,请使用量词{2,}
代替+
:
/^(?:[\u0590-\u05FF\uFB1D-\uFB40]{2,}|[\w]{2,})$/i
要匹配空格,请将其添加到字符类中:
/^(?:[\u0590-\u05FF\uFB1D-\uFB40 ]{2,}|[\w ]{2,})$/i
匹配10位数字:
/^(?:[\u0590-\u05FF\uFB1D-\uFB40 ]{2,}|[\w ]{2,}|05\d{8})$/i
匹配由一个空格分隔的多个单词:
/^(?:[\u0590-\u05FF\uFB1D-\uFB40]{2,}(?: [\u0590-\u05FF\uFB1D-\uFB40]{2,})*|\w{2,}(?: \w{2,})*|05\d{8})$/i