Javascript RegEx匹配问题

时间:2010-03-04 21:05:43

标签: javascript regex

我有

的句子结构
[word1]{word2} is going to the [word3]{word4}

我正在尝试使用javascript正则表达式来匹配以后替换的单词。为此,我正在努力获得以下多维数组:

[["word1", "word2"],["word3","word4"]]

我目前正在使用这个正则表达式来完成这项工作:

\[(.*?)\]\{(.*?)\}

然而,它提供了如下结果:

["[word1]{word2}", "word1", "word2"]

或更糟。我真的不明白为什么因为这个正则表达式似乎在Ruby中运行得很好,而且我并不是一个普通的正则表达式专家来理解正在发生的事情。我只是好奇,如果有任何javascript rege专家,那么这个答案非常明确,可以指导我这里发生了什么。我感谢任何帮助!

编辑:

这是我用来测试匹配的代码:

function convertText(stringText) {
     var regex = /\[(.*?)\]\{(.*?)\}/;
    console.log(stringText.match(regex));
}

2 个答案:

答案 0 :(得分:1)

我假设您正在使用正则表达式的exec方法。

你在做什么几乎是正确的。 exec返回一个数组,其中第一个元素是整个匹配,其余元素是组。您只需要索引1和2处的元素。尝试这样的方法,但当然将结果存储到数组中而不是使用警报:

var string = '[word1]{word2} is going to the [word3]{word4}';
var pattern = /\[(.*?)\]\{(.*?)\}/g;
var m;
while(m = pattern.exec(string)) {
    alert(m[1] + ',' + m[2]);
} 

这会显示两个警告:

  • WORD1,WORD2
  • WORD3,word4

答案 1 :(得分:0)

你所看到的是日本的平假名。确保你的输入是英文的吗?

编辑说:经过进一步审查,它看起来像日语中的字典条目。私有是汉字,わたし是平假名,汉语的发音。 FWIW,这个词是“Watashi”,是日语中“I”(自己)的一个词。