我有以下Java正则表达式,我没有写,我试图修改:
^class-map(?:(\\s+match-all)|(\\s+match-any))?(\\s+[\\x21-\\x7e]{1,40})$
^ ^
Run Code Online (Sandbox Code Playgroud)
它与此类似.
注意第一个问号.这是否意味着该组是可选的?对应之后已有问号).结肠在正则表达式中有特殊意义吗?
正则表达式编译得很好,并且已经有JUnit测试显示它是如何工作的.只是我对第一个问号和冒号的原因感到有些困惑.
我想匹配两个正则表达式A和B,其中A和B显示为"AB".我想在A和B之间插入一个空格,使它变成'A B'.
例如,如果A = [0-9]且B =!+,我想做类似以下的事情.
match = re.sub('[0-9]!+', '[0-9] !+', input_string)
Run Code Online (Sandbox Code Playgroud)
但是,这显然不起作用,因为这将用字符串'[0-9]!+'替换任何匹配.
如何在正则表达式中执行此操作(最好在一行中)?或者这需要几个繁琐的步骤?