java正则表达式考虑空值

java正则表达式考虑空值,java,regex,Java,Regex,我有一些键值对作为-key(value) 示例数据- name(alex) crimehistory address(newland) 我正在逐行处理数据,希望获取键值对。如果值不存在,则应为null(crimehistory) 我当前的正则表达式是- String pattern = "^(?<key>.*?)\\((?<value>.*)\\)"; String pattern=“^(?.*?\ \(?.*)\”; 但它只为name和address获取键值。我应

我有一些键值对作为-key(value)

示例数据-

name(alex)
crimehistory
address(newland)
我正在逐行处理数据,希望获取键值对。如果值不存在,则应为null(crimehistory)

我当前的正则表达式是-

String pattern = "^(?<key>.*?)\\((?<value>.*)\\)";
String pattern=“^(?.*?\ \(?.*)\”;

但它只为name和address获取键值。我应该在正则表达式中修改什么,以便它获得具有空值的键“crimehistory”?

使第二部分成为可选部分

^(?<key>.*?)(?:\\((?<value>.*)\\))?$
^(?.*?(:\\(?.*)\)$

将第二部分设置为可选部分

^(?<key>.*?)(?:\\((?<value>.*)\\))?$
^(?.*?(:\\(?.*)\)$