我在Java中有一个正则表达式问题。
当我尝试使用此正则表达式时:
^(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)?([0-5]?\d)$
我收到以下错误
"Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \ )"
我不知道该如何处理该错误。我已经尝试过将反斜杠加倍,但没有成功。我希望有人可以帮助我。
谢谢
这应该工作 ^(?:(?:([01]?\\d|2[0-3]):)?([0-5]?\\d):)?([0-5]?\\d)$
原因是错误消息中列出的符号具有特殊含义,但\d
不是已定义的要使用的特殊符号之一\
,这意味着您必须对其进行转义(\
在符号前添加一个多余的符号)。
问题内容: 我想过滤掉所有单词,这些单词包含1个数字和3个大写字母,总长度为4。在这里查看我的示例: http //gskinner.com/RegExr/?32taa ArrayList result = new ArrayList (); for(int i = 0; i <= 10; i++){ } 但是,当我将我的regexp模式传递给matcher方法时,出现错误: 我需要换一封信吗?
如果我理解正确转义序列将活动光标位置向左移动,并且在光标位置插入换行符。但是下面的例子令人困惑。 在第一个示例中,将光标向左移动五个位置(在>),然后插入 和 的使用以一种意想不到的方式改变了 的行为。原始字符串中的字符将被覆盖, 将插入末尾,而不是光标位置。有人能解释一下这种行为吗?(或者它取决于终端?我在两个不同的终端上尝试过。)
问题内容: 我正在尝试检查密码是否至少包含一个小写字母,一个大写字母,一位数字和一个特殊字符。 我正在尝试: 但给我一个错误的说法:无效的转义序列。 有人可以帮助我解决问题,并且可以确认这是正确的模式吗? 谢谢,\\ d不要执行错误,但是与Paul%88之类的字符串不匹配,为什么? 问题答案: Java将字符串内部视为开始转义序列。确保使用代替(以便在字符串中获得实际的字符)并且应该没问题。 快速
我编写了一个regex来匹配下面的字符串类型,当我在regex matcher中联机检查它时,它正像预期的那样工作- 当我在lua块中使用这个来匹配字符串时,它会给我带来无效的转义序列错误。我转义了双引号,并试图用\转义regex中的特殊字符,但问题仍然存在。任何指针都有帮助。谢了!
问题内容: 在Java中,表达式为: 似乎等于: 尽管是有效的一元运算符,其优先级高于中的算术运算符。因此,编译器似乎假设该运算符不能为一元运算符,并解析该表达式。 但是,表达式: 即使存在以下唯一有效的解决方案,也不会编译: 和被指定为具有相同的优先级,那么为什么编译器为支持算术而解决看似模棱两可的问题,但为什么不这样做呢? 问题答案: 首先使用最大修改规则将文件标记化(转换为标记序列)-始终获