Javascript正则表达式引用
我很难让这个Javascript正则表达式正常工作。 我想要的是找到一个字符,从<代码> @ 中间有任何字符,结尾是<>代码> <代码>。我也需要它在一个单一的报价从 对我来说,棘手的部分是,它不能以Javascript正则表达式引用,javascript,regex,Javascript,Regex,我很难让这个Javascript正则表达式正常工作。 我想要的是找到一个字符,从 @ 中间有任何字符,结尾是代码> 。我也需要它在一个单一的报价从 对我来说,棘手的部分是,它不能以@“开头,而以”结尾,因为它所查看的字符串可能看起来像[UIImage imagename:@“glass-round-red-green-button.png”] 到目前为止,我只有这个 regex:newregexp(“\\@”\\w+\\b“*”,“g”)regex应该是: var regex=/@“[^”]*”
@“
开头,而以”
结尾,因为它所查看的字符串可能看起来像[UIImage imagename:@“glass-round-red-green-button.png”]
到目前为止,我只有这个
regex:newregexp(“\\@”\\w+\\b“*”,“g”)
regex应该是:
var regex=/@“[^”]*”/g;
尝试以下正则表达式:
/@(["'])[^]*?\1/g
解释:
匹配@([“]”)
或@“
@”
匹配任何任意字符([^]*?
包含与不包含换行符的[^]
相反的所有字符),但以非贪婪的方式
与\1
([“]”)匹配的字符相同。
使用计算机更方便。请注意,这不会转义像
\“
这样的序列。Gumbo的regexp非常好,但它无法检测转义引号(例如\”
,\\“
等)。解决此问题的regexp如下所示:
/@(["'])[^]*?[^\\](?:\\\\)*\1|@""|@''/g
解释(延续Gumbo的解释):
匹配预分隔非反斜杠结尾引号的最近字符(以锚定反斜杠计数检查)[^\\\]
仅当反斜杠的数量是2的倍数(包括零)时匹配,因此转义的反斜杠不计算在内(?:\\\)*
检查是否有空双引号,因为|@”“
要求字符串中至少有一个字符才能工作[^\\]
检查是否有空的单引号|@'
/(^ 124;[^ a-zA-Z])\d/
。你可以替换[^a-zA-Z]
和[\W\d\uuz]
(非单词、数字字符和
)。谢谢。差不多完成了。我正在使用这个/(^ |[\W\d\uz])\d+/g
,但是当数字看起来像(19
时,它包括(
我怎么才能把它弄出来?@cnotethegra8:问题是g没有一个匹配项,而是所有匹配项。这些匹配项不包含子模式的匹配数组(0:整个模式的匹配,1:第一个子模式的匹配,等等)但是只有整个模式的匹配。如果有,它将始终包含前面的非字母字符。一个解决方案是使用将其从匹配中删除。替换(/^[\W\d\u]/,“”)如下:“(19).匹配(/(^[\W\d\u]\ d+/g)[0]。替换(/^[\W\d\u]/,“”)
。