JS 匹配ID名称 提取ID值 ,详情请看下面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 匹配ID名称 提取ID值 ,详情请看下面相关的知识,希望对你有一定的参考价值。
str='<input tabindex="26" id="c_0_chengdu" name="acl[0][data][]" value="chengdu" type="checkbox">成都'
正则提取字符
id="c_0_chengdu"
如果要任何字符都能提取出来则可以写成这样
/(id=\"[^\"]+\")/gi.exec(str);追问
谢谢啊 ,这个 怎么用? 对JS 的正则不输
追答var str='<input tabindex="26" id="c_0_chengdu" name="acl[0][data][]" value="chengdu" type="checkbox">成都';var str1='<input tabindex="26" id=" " name="acl[0][data][]" value="chengdu" type="checkbox">成都';
var str2='<input tabindex="26" id=" x " name="acl[0][data][]" value="chengdu" type="checkbox">成都';
/(id=\\"[^\\"]+\\")/gi.exec(str);
//匹配结果:["id="c_0_chengdu"", "id="c_0_chengdu""]
/(id=\\"[^\\"]+\\")/gi.exec(str1);
//匹配结果:["id=" "", "id=" ""]
/(id=\\"[^\\"]+\\")/gi.exec(str2);
//匹配结果:["id=" x "", "id=" x ""] 参考技术A var re = /id=\"[a-z0-9_]\"/g/i;
re.test(str);追问
能不能把中间的换成星号,id=" * " 就是不管id=" " 里面是什么都能提取出来
根本匹配不出来!
从每个 id 的字符串中提取多个值
【中文标题】从每个 id 的字符串中提取多个值【英文标题】:Extract multiple values from a string for each id 【发布时间】:2021-05-19 07:50:04 【问题描述】:我想从每个 id 的字符串列中提取匹配项。我怎样才能做到这一点?
+--------+---------------------------------------+
| id | text |
+--------+---------------------------------------+
| fsaf12 | Other Questions,Missing Document |
| sfas11 | Others,Missing Address,Missing Name |
+--------+---------------------------------------+
期望的输出:
+--------+------------------+
| id | extracted |
+--------+------------------+
| fsaf12 | Other Questions |
| fsaf12 | Missing Document |
| sfas11 | Others |
| sfas11 | Missing Address |
| sfas11 | Missing Name |
+--------+------------------+
这里是样本数据的查询:FIDDLE
【问题讨论】:
我不知道为什么这个问题被否决了。这看起来很简单,但对于新的来说有点棘手。 【参考方案1】:您可以使用regexp_split_to_table
来满足您的要求,如下所示:
WITH t1 AS (
SELECT 'fsaf12' AS id, 'Other Questions,Missing Document' AS text UNION ALL
SELECT 'sfas11', 'Others,Missing Address,Missing Name'
)
SELECT id, regexp_split_to_table(text,',')
FROM t1
输出
| id | extracted |
|-----------|-----------------------|
| fsaf12 | Other Questions |
| fsaf12 | Missing Document |
| sfas11 | Others |
| sfas11 | Missing Address |
| sfas11 | Missing Name |
DEMO
【讨论】:
【参考方案2】:Postgres
根本不是我的强项,但基于此older 帖子,您可以尝试使用unnest()
。我添加了一个TRIM()
以在拆分后删除可能的栏杆空间:
SELECT id, TRIM(unnest(string_to_array(text, ','))) as "extracted" FROM t1;
或者,如果你想使用regexp_split_to_table()
:
SELECT id, regexp_split_to_table(text, '\s*,\s*') as "extracted" FROM t1;
这里我们匹配 0+ 个空白字符、一个文字逗号和 0+ 个空白字符。
【讨论】:
以上是关于JS 匹配ID名称 提取ID值 ,详情请看下面的主要内容,如果未能解决你的问题,请参考以下文章