用于在地址中接受波斯字符的正则表达式
Regex for accepting Persian characters in address
这是我用于测试地址的正则表达式:
^((([\u0600-\u06FF])+\s?([0-9()،,-]?)+\s?))+$
但是当地址包含/
或\
字符时,出现RegexMatchTimeoutException
。
这里是示例输入:
"تهران - خیابان سهروردی - خیابان 19 شرقی، کوچه 59, پلاک 39525، / طبقه ٣"
您的正则表达式的问题在于它包含用于量化可选模式的嵌套量词。
使用线性逻辑:
^[\u0600-\u06FF]+(?:[\s0-9()،,-]+[\u0600-\u06FF]+)*$
详情:
^
- 字符串开头
[\u0600-\u06FF]+
- 给定 Unicode 范围中的 1 个或多个符号
(?:[\s0-9()،,-]+[\u0600-\u06FF]+)*
- 0+ 个序列:
[\s0-9()،,-]+
- 1+ 个符号:空格、数字、(
、)
、،
、,
或 -
[\u0600-\u06FF]+
- 给定 Unicode 范围中的 1 个或多个符号
$
- 字符串结尾。
这是我用于测试地址的正则表达式:
^((([\u0600-\u06FF])+\s?([0-9()،,-]?)+\s?))+$
但是当地址包含/
或\
字符时,出现RegexMatchTimeoutException
。
这里是示例输入:
"تهران - خیابان سهروردی - خیابان 19 شرقی، کوچه 59, پلاک 39525، / طبقه ٣"
您的正则表达式的问题在于它包含用于量化可选模式的嵌套量词。
使用线性逻辑:
^[\u0600-\u06FF]+(?:[\s0-9()،,-]+[\u0600-\u06FF]+)*$
详情:
^
- 字符串开头[\u0600-\u06FF]+
- 给定 Unicode 范围中的 1 个或多个符号(?:[\s0-9()،,-]+[\u0600-\u06FF]+)*
- 0+ 个序列:[\s0-9()،,-]+
- 1+ 个符号:空格、数字、(
、)
、،
、,
或-
[\u0600-\u06FF]+
- 给定 Unicode 范围中的 1 个或多个符号
$
- 字符串结尾。