Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式引用_Javascript_Regex - Fatal编程技术网

Javascript正则表达式引用

Javascript正则表达式引用,javascript,regex,Javascript,Regex,我很难让这个Javascript正则表达式正常工作。 我想要的是找到一个字符,从 @ 中间有任何字符,结尾是代码> 。我也需要它在一个单一的报价从 对我来说,棘手的部分是,它不能以@“开头,而以”结尾,因为它所查看的字符串可能看起来像[UIImage imagename:@“glass-round-red-green-button.png”] 到目前为止,我只有这个 regex:newregexp(“\\@”\\w+\\b“*”,“g”)regex应该是: var regex=/@“[^”]*”

我很难让这个Javascript正则表达式正常工作。 我想要的是找到一个字符,从<代码> @ 中间有任何字符,结尾是<>代码> <代码>。我也需要它在一个单一的报价从

对我来说,棘手的部分是,它不能以
@“
开头,而以
结尾,因为它所查看的字符串可能看起来像
[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的倍数(包括零)时匹配,因此转义的反斜杠不计算在内
  • |@”“
    检查是否有空双引号,因为
    [^\\]
    要求字符串中至少有一个字符才能工作
  • |@'
    检查是否有空的单引号

太好了!你能再给我一个正则表达式吗?我需要找到一个数字,但前提是它前面的字符不是字母。@CNOTETEGR8:我会使用查找后断言。但是由于JavaScript不支持查找后断言,你需要这样的内容:
/(^ 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]/,“”)