私はこの文字列を持っています:"asdf"
そして、それはこの正規表現によって認識されません: ^[\p{L}]{3,32}$
. 私の知る限り、 は\p{L}
どのユニコード文字にも一致するはずです。なぜそうしないのですか?A-Za-z に置き換えると正常に動作しますが、Unicode 文字が必要です。どうすればこれを修正できますか?
1 に答える
0
// [\p{L}]{3,32}
// A character with the Unicode property “letter” (any kind of letter from any language) «[\p{L}]{3,32}» Between 3 and 32 times, as many times as possible, giving back as needed (greedy) «{3,32}»
定義上、 :"
はどの言語の文字でもありません!
この正規表現を試してください:^"[\p{L}]{3,32}"$
using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
Console.WriteLine(Regex.IsMatch("\"asdf\"", "^\"[\\p{L}]{3,32}\"$")); //True
}
}
于 2013-02-07T21:27:19.820 に答える