unicode 字符的正则表达式(波斯数字)
regex for unicode charachters (persian numbers)
我有一个用于验证波斯日期的正则表达式,如下所示:
((((\u0661\u0663|\u0661\u0664)[\u0660-\u0669]{2})(\/|-)(\u0660[\u0660-\u0669]{1}|\u0661\u0661|\u0661\u0662))(\/|-)(\u0660[\u0661-\u0669]{1}|(\u0661|\u0662)[\u0660-\u0669]{1}|\u0663\u0660|\u0663\u0661))
1.
(\u0661\u0663|\u0661\u0664)[\u0660-\u0669]{2} : only match ۱۳|۱۴ followed by two char between [٠-۹]
match: ۱۳۹۹ , ۱۴٠٠
not match: ۱۲۹۹
2.
separator can be / | -
3.
(\u0660[\u0660-\u0669]{1}|\u0661\u0661|\u0661\u0662)) : (٠ with following single char between [۱-۹]) | ۱۱ | ۱۲
match: ٠۱ , ٠۹, ۱۱ , ۱۲
not match: ۱۳ , ۲۱ , ٠٠ , etc
4.
(\u0660[\u0661-\u0669]{1}|(\u0661|\u0662)[\u0660-\u0669]{1}|\u0663\u0660|\u0663\u0661) : match (٠۱-٠۹) | (۱۱ - ۲۹) | ۳٠ | ۳۱
但是testlink中的测试没有通过。我做错了什么吗?
感谢@JvdV,我在获取波斯数字字符的 unicode 时犯了一个错误。正确的正则表达式是:
((((\u06F1\u06F3|\u06F1\u06F4)[\u06F0-\u06F9]{2})(\/|-)(\u06F0[\u06F0-\u06F9]{1}|\u06F1\u06F1|\u06F1\u06F2))(\/|-)(\u06F0[\u06F1-\u06F9]{1}|(\u06F1|\u06F2)[\u06F0-\u06F9]{1}|\u06F3\u06F0|\u06F3\u06F1))
我有一个用于验证波斯日期的正则表达式,如下所示:
((((\u0661\u0663|\u0661\u0664)[\u0660-\u0669]{2})(\/|-)(\u0660[\u0660-\u0669]{1}|\u0661\u0661|\u0661\u0662))(\/|-)(\u0660[\u0661-\u0669]{1}|(\u0661|\u0662)[\u0660-\u0669]{1}|\u0663\u0660|\u0663\u0661))
1.
(\u0661\u0663|\u0661\u0664)[\u0660-\u0669]{2} : only match ۱۳|۱۴ followed by two char between [٠-۹]
match: ۱۳۹۹ , ۱۴٠٠
not match: ۱۲۹۹
2.
separator can be / | -
3.
(\u0660[\u0660-\u0669]{1}|\u0661\u0661|\u0661\u0662)) : (٠ with following single char between [۱-۹]) | ۱۱ | ۱۲
match: ٠۱ , ٠۹, ۱۱ , ۱۲
not match: ۱۳ , ۲۱ , ٠٠ , etc
4.
(\u0660[\u0661-\u0669]{1}|(\u0661|\u0662)[\u0660-\u0669]{1}|\u0663\u0660|\u0663\u0661) : match (٠۱-٠۹) | (۱۱ - ۲۹) | ۳٠ | ۳۱
但是testlink中的测试没有通过。我做错了什么吗?
感谢@JvdV,我在获取波斯数字字符的 unicode 时犯了一个错误。正确的正则表达式是:
((((\u06F1\u06F3|\u06F1\u06F4)[\u06F0-\u06F9]{2})(\/|-)(\u06F0[\u06F0-\u06F9]{1}|\u06F1\u06F1|\u06F1\u06F2))(\/|-)(\u06F0[\u06F1-\u06F9]{1}|(\u06F1|\u06F2)[\u06F0-\u06F9]{1}|\u06F3\u06F0|\u06F3\u06F1))