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}"