Java 用于确认可接受输入的正则表达式

Java 用于确认可接受输入的正则表达式,java,regex,Java,Regex,我有键入的KeyEvent.KEY,我在其上执行输入检查,在此期间通过以下方式获取全文: text = text + event.getCharacter(); 但我需要确保只添加用户可以输入的可接受字符,包括所有数字、字母和特殊字符。应用程序应该已经支持英语、爱沙尼亚语和俄语,将来还会增加更多。什么样的regex应该排除Esc,Backspace等?键入的键只与可视为输入的键有关(因此键入键)。要操作(和禁止)控制键被按下,例如backspace,您应该查看其他事件,例如keyPressed

我有键入的
KeyEvent.KEY
,我在其上执行输入检查,在此期间通过以下方式获取全文:

text = text + event.getCharacter();

但我需要确保只添加用户可以输入的可接受字符,包括所有数字、字母和特殊字符。应用程序应该已经支持英语、爱沙尼亚语和俄语,将来还会增加更多。什么样的
regex
应该排除
Esc
Backspace
等?

键入的键只与可视为输入的键有关(因此键入键)。要操作(和禁止)控制键被按下,例如backspace,您应该查看其他事件,例如keyPressed和KeyRelease。它们还会收到关于控制字符的通知

发件人:

“键类型”事件是更高级别的事件,通常不依赖于 平台或键盘布局。它们是在使用Unicode时生成的 输入字符,并且是查找的首选方式 字符输入。在最简单的情况下,会生成键类型的事件 通过单次按键(例如,“a”)。然而,通常情况下,角色是 由一系列按键(如“shift”+“a”)和 从按键事件到按键类型事件的映射可能是多对一的 或者多对多。通常不需要密钥释放来生成 键类型的事件,但在某些情况下,键类型的事件是 直到释放密钥(例如,输入ASCII序列)才生成 通过Windows中的Alt Numpad方法)不支持任何键类型的事件 为不生成Unicode字符的键生成(例如。, 动作键、修改键等)。


然而,从用户的角度来看,禁止退格(backspace)听起来确实有问题。如果您想走这条路,请注意您已经考虑了所有相关的使用场景。由于keytyped事件没有获得任何控制字符,可能它已经在执行您希望它执行的操作。

要匹配除控制字符以外的任何字符,您可以使用

"\\P{Cc}"


是否允许任何非控制字符的字符?使用
“\\P{Cc}”
匹配这些字符(或
“\\P{Cntrl}”
)。谢谢Wiktor,这正是我要找的。也许你们可以把它贴出来作为答案,这样我就可以把它标记为正确的?好的,我把它贴出来作为答案。
"\\P{Cntrl}"