我有一个输入字段,可以输入常规文本和sprintf标签。使用正则表达式验证输入字段的sprintf格式
例子:some text here. %1$s done %2$d times
如何验证sprintf的部件,因此它不可能他们是错的像%$1s
? 该文本是UTF-8,据我所知正则表达式只匹配拉丁-1字符。
www.regular-expressions.info没有列出/u
任何地方,我认为这是用来告诉该字符串是unicode。
是只搜索整个输入字段字符串%
或$
的最佳方法,如果发现任何一个,然后应用正则表达式来验证sprintf零件?
我觉得正则表达式是:/%\d\$(s|d|u|f)/u
您应该将第一个正则表达式更改为“/%[^ \ s] * /”,因为格式也可以在字符串结尾处具有以下空格。第二个应该改为“/ ^%(?:\ d + \ $)?[dfsu] $ /”,否则“%% 1 $ s”也会被接受为有效。 – Gumbo 2009-01-15 13:00:10