如果然后在java中使用正则表达式条件

时间:2013-05-09 09:23:14

标签: java regex string

我有一个像这样的模式

String1 :"String2",

我必须验证这种模式。在这里,如果你看到有两种情况,那么somestring1可以包含特殊字符,如果它是在双引号内给出的。

eg: "xxxx-xxx" :"yyyyyyyy",--------> is valid
but  xxxx-xxx  :"yyyyyyyy",--------> is not valid
    "xxxx-xxx  :"yyyyyyyy",--------> is not valid

所以我需要创建一个正则表达式,它将检查双引号是否在String1中存在时是否正确关闭。

3 个答案:

答案 0 :(得分:3)

简短回答:正则表达式不是那样的。

然而,您可以使用两种不同的模式来验证:

\"[^\"]+?\" :.*

检查可以包含特殊字符的那个,并且:

[a-zA-Z]+? :.*

检查不能

的那个

修改

再想一想,你可以将上面两种模式结合起来:

^(\"[^\"]+?\"|[a-zA-Z]+?) :.*$

哪个匹配something :"something""some-thing" :"something",但不匹配"some-thing : "something"some-thing : "something"。假设字符串只包含给定的文本。

答案 1 :(得分:0)

如果我理解你的问题,这个简单的正则表达式应该可行

\"string1\" :\"string2\"

答案 2 :(得分:0)

也许是这样的?

(?<normalString>^[a-zA-Z]+$)|(?<specialString>^".*?"$)

这将只捕获a-z字符并将它们放在“normalString”组中,或者如果引号中有一个字符串,则将其捕获并将其放入“specialString”组。