我需要一些帮助来编写正则表达式。
这是我的第一个正则表达式(匹配英语或希伯来字符):
/^(?:[\u0590-\u05FF\uFB1D-\uFB40]+|[\w]+)$/i
这应该匹配:abc,אבג
这不应该匹配:a,b,aא
没问题,我只需要添加1个以上字符的limitaion。
下一个应该与上面的完全一样(包括超过1个字符
限制),但也要留有空格。
这应该匹配:abcx,abcx ascx,דגהק,שגדב
这不应该匹配:a,b,asaceדגעההת,ascasvאקיכרעקכ
最后一个Regex表达式应为全数字,正好包含10个数字
并以数字05开头。
这应该匹配:0528547114
不应匹配:数字,特殊字符,小于或大于
10位数字。
我正在使用JS和C#正则表达式。
任何帮助将非常感激。
最佳答案
要匹配多个字符,请使用量词{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