0

我正在尽最大努力了解正则表达式,但运气不佳。

我试图在字符串中搜索文本,我知道字符串是如何开始的,我知道字符串是如何结束的,我想返回字符串之间的所有文本,包括开始和结束。

开始搜索 = [{"lx":

结束搜索 = }]

IE

[{“lx”:这里的变量}]

到目前为止我已经尝试过

/^\[\{"lx":(*?)\}\]/;

/(\[\{"lx":)(*)(\}\])/;

但无济于事......有人可以帮忙吗?

非常感谢

4

5 回答 5

1

您可能错误地认为*是通配符。改用句点 ( .) 就可以了。

另外,您确定要规定零个或多个吗?如果必须有一个值,请使用 +(一个或多个)。

Javascript:

'[{"lx":variablehere}]'.match(/^\[\{"lx":(.+?)\}\]/);
于 2012-06-14T11:46:01.267 回答
1

可能的解决方案:

var s = '[{"lx":variablehere}]';
var r = /\[\{"(.*?)":(.*?)\}\]/;
var m = s.match(r);

console.log(m);

该数组的结果:

[ '[{"lx":variablehere}]',
  'lx',
  'variablehere',
  index: 0,
  input: '[{"lx":variablehere}]' ]
于 2012-06-14T11:46:42.483 回答
1
\[\{"lx"\:(.*)\}\]

这应该适合你。您可以通过 \1 符号访问捕获的变量。

于 2012-06-14T11:46:54.340 回答
1

星号乘以前面的*字符。在你的情况下,没有这样的角色。您应该放置.,这意味着“任何字符”,或者更具体的东西,比如\S,这意味着“任何非空白字符”。

于 2012-06-14T11:45:49.023 回答
0

尝试这个:

    ^\[\{\"lx\"\:(.*)\}\]$

[{"lx": and }] 之间的所有文本都可以在反向引用变量中找到(类似于 \$1 ,取决于编程语言)。

于 2012-06-14T11:53:59.763 回答