1

我有一个像这样的模式

String1 :"String2",

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

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

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

4

3 回答 3

3

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

但是,您可以做的是使用两种不同的模式进行验证:

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

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

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

检查那个不能

编辑:

再想一想,您可以像这样组合上面的两种模式:

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

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

于 2013-05-09T09:35:02.200 回答
0

也许是这样的?

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

这将仅捕获 az 字符并将它们放入“normalString”组中,或者如果引号内有字符串,则捕获该字符串并将其放入“specialString”组中。

于 2013-05-09T12:22:20.183 回答
0

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

\"string1\" :\"string2\"
于 2013-05-09T09:27:07.927 回答