正则表达式无法正常使用土耳其语字符

时间:2015-09-02 12:35:46

标签: c# regex character

我的正则表达式有问题。我写了一些代码来检查文本是否匹配,如订购号。并在Regexr上测试我的正则表达式。例如,用户写了“3'üncü”并且正则表达式不匹配。但如果用户写9'uncu然后正则表达式获得匹配。我的正则表达是;

([0-9]*)(([-/.]|[\w])([n][c][ıIiİuUüÜ]))|([0-9]*)(([-/.]|[\w])([ıIiİuUüÜ][n][c][ıIiİuUüÜ]))

我可以说,正则表达式捕获了土耳其字符,但不是英文字符。这有什么问题?谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

你的正则表达式工作正常。

这里有一些代码来测试它:

True
üncü

打印:

((PlaceholderFragment)getSupportFragmentManager().findFragmentByTag(getSupportFragmentManager().getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount()-1).getName())).setItem();

这里是demo

可能是您没有使用适当的编码保存.cs文件。这是必要的,因为代码(构建正则表达式的文字字符串)包含在默认编码中无法表示的字符(在我的例子中,它是西欧,CP 1252 )。

要将文件另存为Unicode,请从菜单中选择文件 - > 高级保存选项并选择 Unicode(UTF-8)编码。