【发布时间】:2019-12-10 13:47:50
【问题描述】:
我需要一点帮助,没有我想的那么复杂,但我想不通:
这是我的正则表达式模式:
/:\s*'([^:]*)'/g(我在 preg_match_all() 没有标志 g 的情况下使用它)
这是要搜索的字符串(通常来自 jqValidate):
{ messages : { required : 'This 'asdf' "asdf" field is required!', dateISO : 'This is a test...' } , rules : { dateISO : true , required : true } }
这是我得到和想要得到的:
array(
0 => array(
0 => : 'This 'asdf' "asdf" field is required!'
1 => : 'This is a test...'
)
1 => array(
0 => This 'asdf' "asdf" field is required!
1 => This is a test...
)
)
这就是问题所在:
这种模式 - 我花了几个小时才弄清楚(我没有很好地练习) - 效果很好,但前提是我不需要 :(冒号)。 如果我在单引号之间的消息文本中使用冒号,则该消息不再匹配。
大多数情况下,我试图玩弄冒号的否定,但我不知道如何否定“匹配除冒号以外的所有事件”这样的组,“仅当”它们不是由至少一个单引号和介于两者之间的任何内容引导时单引号和冒号"。
为了更清楚我上面的意思:
Example: This is a plausible use of a colon in a jqValidate message.
'Example': We probably do not use a colon together with single quotes like this.
Any 'text' here: This is a very unusual 'portion of text'!
我希望你看到,我的问题是什么。任何有用的帮助将不胜感激。
提前谢谢,
问候英格玛
【问题讨论】:
-
您应该告诉生成此文本的人,以弄清楚如何发出正确的 JSON 文本,而不是自己编造。
-
@chris85 它看起来像一些混蛋的自制 JSON。对于初学者来说,标识符没有被引用,这使得它不是 JSON。引用也中断了。
-
在定义一些结构之前真的没有解决方案。最大的问题是字符串内部没有分隔符引用。例如,这很容易成为有效的
'This 'asdf' "asdf" field is required!', dateISO : 'This is a test...' -
@miken32 我们中的一个人误解了 stackoverflow 的精神。我也没有问这是否是有效的 JSON,我也不相信它是有效的 JSON。这是旧版本 jqValidate 的专有元数据,事实上我现在必须使用它。感谢您的 - 如果不是很有帮助 - 回复。
-
你是一个带着西西弗斯式的任务来到这里的人,希望有人花时间为你解决它!这不是一件容易的事(可能吗?),如果可能的话,修改数据源将更有可能成功。您有生成数据的程序的源代码链接吗?