正则表达式在字符串中搜索两个字符串之间的内容

regex search a string for contents between two strings

本文关键字:字符串 之间 两个 搜索 正则表达式      更新时间:2023-09-26

我正在尽最大努力了解正则表达式,但没有太多运气。

我正在尝试在字符串中搜索文本,我知道字符串如何开始,

我知道字符串如何结束,我想返回字符串之间的所有文本,包括开始和结束。

开始搜索 = [{"lx":

结束搜索 = }]

[{"lx":variablehere}]

到目前为止我已经尝试过

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

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

但无济于事...任何人都可以协助吗?

非常感谢

您可能

错误地认为*是通配符。改用句点(.),你会没事的。

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

Javascript:

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

*星字符乘以前面的字符。在你的情况下,没有这样的角色。你应该输入.,这意味着"任何字符",或者更具体的东西,如'S,这意味着"任何非空格字符"。

可能的解决方案:

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

此数组的结果:

[ '[{"lx":variablehere}]',
  'lx',
  'variablehere',
  index: 0,
  input: '[{"lx":variablehere}]' ]
'['{"lx"':(.*)'}']

这应该适合您。您可以通过 ''1 表示法访问捕获的变量。

试试这个:

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

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