我有以下正则表达式,我用它来分割字母和数字:
(?<=\p{L})(?=\p{N})
asd123 //Match
وس123 //Match (Right to left)
وَ123 //No match (The accent is not matched)
如果这封信有重音(变音符号),那么就不会匹配。我尝试添加捕获变音符号的\p{M}
,但我似乎无法使其发挥作用。
答案 0 :(得分:1)
我做了一个非常简单的错误,不包括“?”在\p{M}
之后。没有“?”它将成为强制性的,而不是可选的,在我的情况下它是。
(?<=\p{L}\p{M}?)(?=\p{N}) //For single diacritic mark
(?<=\p{L}\p{M}\p{M}?)(?=\p{N}) //For single double mark (in Arabic)