在现有正则表达式Java中添加引号
我有一个现有的正则表达式:在现有正则表达式Java中添加引号,java,regex,Java,Regex,我有一个现有的正则表达式:^[\u A-Za-z0-9-+]+(\\\.[u A-Za-z0-9-]+)* 我想在这个正则表达式中添加一个引号。它可以在任何地方,并且必须零次或只出现一次 我还没有找到我需要添加什么才能做到这一点。有人有主意了吗?您可以将'添加到两个字符类中,并通过使'之前和之后的内容在前瞻中成为可选的,以肯定的前瞻性断言开始模式,以确定字符串中任何位置是否存在可选的' ^(?=[\w.+-]*(?:'[\w.-]+)?$)[\w+'-]+(?:\.[\w-']+)*$ 解释
^[\u A-Za-z0-9-+]+(\\\.[u A-Za-z0-9-]+)*
我想在这个正则表达式中添加一个引号。它可以在任何地方,并且必须零次或只出现一次
我还没有找到我需要添加什么才能做到这一点。有人有主意了吗?您可以将
'
添加到两个字符类中,并通过使'
之前和之后的内容在前瞻中成为可选的,以肯定的前瞻性断言开始模式,以确定字符串中任何位置是否存在可选的'
^(?=[\w.+-]*(?:'[\w.-]+)?$)[\w+'-]+(?:\.[\w-']+)*$
解释
字符串的开头^
正向前瞻,断言右边的是(?=
匹配任何[\w.+-]*
[\w.+-]*
可以选择匹配(?:'[\w.-]+)?$
和0+次任何'
,并断言字符串的结尾[\w.-]
关闭“向前看”)
匹配1+个单词字符[\w+'-]+
或'
-
可以选择重复匹配前面的(?:\.[\w-']+)*
字符串结尾$
String regex = "^(?=[\\w.+-]*(?:'[\\w.-]+)?$)[\\w+'-]+(?:\\.[\\w-']+)*$";
您可以发布一些有效和无效字符串的示例吗?提供一个输入和预期结果的示例仅插入一个
'
,并将其添加到两个字符类^(?=[^']*'[^']*$)[[u a-Za-z0-9-+']+(\.[u a-Za-z0-9-']+)*$
您的正则表达式可以简化为:^[\w-+++++.\[\w-]+)*
一些例子:aaa'aa.bbbbbbaaaaaaa.bbbbaaaa'.bbbbb aaaa.'bbbbb实际上我的正则表达式是^[[u-A-Za-z0-9-+]+(\\.[[u-A-Za-z0-9-])*(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z0-9-]{2,30}$,我只想在你刚才发送的内容之前加上什么?[[A-Za-z0-z0-99-++]。[\\.[-++]。][\u A-Za-z0-9-+']+(\\.\.\\w-']+)*@[\\w-]+(?:\.\.\.\\w-]+)*(?:\.\.\.\.\\w-]{2,30})$看到它几乎完美了,但它不适用于A.b'@测试。com@JeromeF99我明白了,现在可以用了。太好了。谢谢