我正在努力让自己最好地掌握正则表达式,不过没有太多运气。
我正在尝试在字符串中搜索文本,我知道字符串是如何开始的,我知道字符串是如何结束的,我想在字符串之间返回所有文本,包括开头和结尾。
开始搜索= [{“lx”:
结束搜索= }]
即
[{ “LX”: variablehere }]
到目前为止,我已经尝试了
/^\[\{"lx":(*?)\}\]/;
和
/(\[\{"lx":)(*)(\}\])/;
但是没有真正有用......任何人都可以提供协助吗?
非常感谢
答案 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,取决于编程语言)。