求助一个正则表达式.

查看 107|回复 8
作者:zyb201314   
字符串: 'txt=123,txt=kg66vv,hhj,txt=6966,ggg'
需要获取包含"6"的字段结果即:['kg66vv','6966'] 这样一个表达式.
newaccount   
'txt=123,txt=kg66vv,hhj,txt=6966,ggg'.split(/[^a-z0-9]/i).filter(item => item.indexOf('6') !== -1)
你就说用没用到正则吧
Jwyt   
[a-z0-9]*6[a-z0-9]* 这样?
wangtian2020   
```
let str = `txt=123,txt=kg66vv,hhj,txt=6966,ggg`
console.log(str.split(',').filter(v=>v.includes(`txt=`)).map(v=>v.substring(4)).filter(v=>v.includes(6)));
```
正则?什么正则,懒得问 chatgpt 要正则写法了,JavaScript 直接梭
857681664   
(? item.split('=')[1]) : [];
console.log(results);
```
这段代码的工作方式如下:
- `/txt=([^,]*6[^,]*)/g`:这是正则表达式,其与上述 Python 例子中的功能相同,但使用了全局搜索标志`g`,以便找到所有匹配项。
- `text.match(pattern)`:这将返回所有匹配的项,例如`['txt=kg66vv', 'txt=6966']`。
- `item.split('=')[1]`:将每个匹配的字符串分割,并取等号后面的部分,这样就只剩下所需的字段值了。
- `results`:这将存储最终提取的结果,如`['kg66vv', '6966']`。
如果你的字符串结构有所不同,或者有其他特定的需求,可能需要调整正则表达式或处理逻辑。
jgh004   
/[^=,]*6[^=,]*/gi
wangxiansheng2   
当你有一个问题,决定用正则解决时,你有两个问题了。
如果 op 为了练习正则,那么自己动手多试试吧,如果是为了解决这个问题,那真不如 split 加 is in 判断
57ing   
```js
s = 'txt=123,txt=kg66vv,hhj,txt=6966,ggg'
s.match(/(?<=(?:^|,)[^=]+=)([^,]*6[^,]*)(?=,|$)/g)
```
ramirezyolis808   
/\btxt=(\w*6\w*)\b/g
您需要登录后才可以回帖 登录 | 立即注册

返回顶部