java - 正则表达式不适用于单个字符
问题描述
我正在尝试编写正则表达式Java
来评估用 () 分隔的两个字符串,
Example: (test1,test2)
我写了下面的代码
public static void main(String[] a){
String pattern = "\\([a-zA-Z0-9]+,[a-zA-Z0-9]+.\\)";
String test = "(test1,test2)";
System.out.println(test.matches(pattern));
}
true
它按预期工作并在以下情况下打印
String test = "(test1,test2)";
String test = "(t,test2)";
但是false
当我在下面发送时它正在打印
String test = "(test1,t)";
这很奇怪,因为我在之前和之后使用相同的表达式,
它返回true
但(t,test2)
不返回(test1,t)
请让我知道我在这个正则表达式中缺少什么。true
我需要它来评估并返回(test1,t)
解决方案
正则表达式中不需要.
(匹配一个字符)。从您的正则表达式中删除.
,使其变为"\\([a-zA-Z0-9]+,[a-zA-Z0-9]+\\)"
并且它应该可以工作。
推荐阅读
- javascript - 状态仅在第二次 cklick 时实现
- sql - 如何使用 MS Access 计算此处的平均金额?
- python - 错误 - AttributeError:模块“keras”没有属性“sum”
- python - FileNotFoundError:[Errno 2] 没有这样的文件或目录:'apempe_chunks.txt'
- c++ - MinGW:winpthreads 覆盖 .rc 资源文件信息
- android - 如何在 Android 上监控 HTTP 请求?
- sql - 在 SQL Server Management Studio 中创建临时表时遇到问题
- python - 时钟:无法使用 py2app 在 Mac OS Catalina 10.15.5 上导入 kivy._clock
- android - searchView.setOnCloseListener 不起作用android
- c++ - 将值分配给指针C++时出现分段错误