正则表达式搜索字符串以查找两个字符串之间的内容

时间:2012-06-14 11:42:04

标签: javascript regex expression

我正在努力让自己最好地掌握正则表达式,不过没有太多运气。

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

开始搜索= [{“lx”:

结束搜索= }]

[{ “LX”: variablehere }]

到目前为止,我已经尝试了

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

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

但是没有真正有用......任何人都可以提供协助吗?

非常感谢

5 个答案:

答案 0 :(得分:1)

*星号字符与前一个字符相乘。在你的情况下,没有这样的角色。您应该放置.,这意味着“任何字符”,或更具体的内容,如\S,这意味着“任何非空白字符”。

答案 1 :(得分:1)

你可能错误地认为*是一个通配符。使用期间(.)代替,你会没事的。

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

<强>使用Javascript:

'[{"lx":variablehere}]'.match(/^\[\{"lx":(.+?)\}\]/);

答案 2 :(得分:1)

可能的解决方案:

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

console.log(m);

此阵列的结果:

[ '[{"lx":variablehere}]',
  'lx',
  'variablehere',
  index: 0,
  input: '[{"lx":variablehere}]' ]

答案 3 :(得分:1)

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

这对你有用。您可以通过\ 1表示法来获取捕获的变量。

答案 4 :(得分:0)

试试这个:

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

[{“lx”:和}]之间的所有文本你会在backreference变量中找到(类似于\ $ 1,取决于编程语言)。