求助一个正则表达式.

33 天前
 zyb201314
字符串: 'txt=123,txt=kg66vv,hhj,txt=6966,ggg'
需要获取包含"6"的字段结果即:['kg66vv','6966'] 这样一个表达式.
1266 次点击
所在节点    JavaScript
13 条回复
newaccount
33 天前
'txt=123,txt=kg66vv,hhj,txt=6966,ggg'.split(/[^a-z0-9]/i).filter(item => item.indexOf('6') !== -1)

你就说用没用到正则吧
Jwyt
33 天前
[a-z0-9]*6[a-z0-9]* 这样?
wangtian2020
33 天前
```
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
33 天前
(?<=txt=)[a-zA-Z0-9]+[6]+[a-zA-Z0-9]+(?=,)
jgh004
33 天前
直接扔给 ai
wangxiansheng2
33 天前
import re

# 定义要匹配的字符串
text = 'txt=123,txt=kg66vv,hhj,txt=6966,ggg'

# 使用正则表达式匹配包含"6"的字段
matches = re.findall(r'txt=([^,]*6[^,]*)', text)

print(matches)
然后再给你两个地址
https://chat.openai.com/? GPT
https://kimi.moonshot.cn/chat/coev3cg3r07df52qskn0 国内 kimi 你用这两个问,基本能解决 90%问题
57ing
33 天前
这种问题交给 gpt 来帮忙提效是最合适的:
在 JavaScript 中,你可以使用正则表达式与`match`方法来达到类似的效果。这里是如何用 JavaScript 实现这一功能的例子:

```javascript
const text = 'txt=123,txt=kg66vv,hhj,txt=6966,ggg';
const pattern = /txt=([^,]*6[^,]*)/g;

const matches = text.match(pattern);
const results = matches ? matches.map(item => item.split('=')[1]) : [];
console.log(results);
```

这段代码的工作方式如下:
- `/txt=([^,]*6[^,]*)/g`:这是正则表达式,其与上述 Python 例子中的功能相同,但使用了全局搜索标志`g`,以便找到所有匹配项。
- `text.match(pattern)`:这将返回所有匹配的项,例如`['txt=kg66vv', 'txt=6966']`。
- `item.split('=')[1]`:将每个匹配的字符串分割,并取等号后面的部分,这样就只剩下所需的字段值了。
- `results`:这将存储最终提取的结果,如`['kg66vv', '6966']`。

如果你的字符串结构有所不同,或者有其他特定的需求,可能需要调整正则表达式或处理逻辑。
ramirezyolis808
33 天前
/[^=,]*6[^=,]*/gi
jurassic2long
33 天前
当你有一个问题,决定用正则解决时,你有两个问题了。

如果 op 为了练习正则,那么自己动手多试试吧,如果是为了解决这个问题,那真不如 split 加 is in 判断
wxf666
33 天前
```js
s = 'txt=123,txt=kg66vv,hhj,txt=6966,ggg'
s.match(/(?<=(?:^|,)[^=]+=)([^,]*6[^,]*)(?=,|$)/g)
```
shuxhan
33 天前
/\btxt=(\w*6\w*)\b/g
dbak
33 天前
echo 'txt=123,txt=kg66vv,hhj,txt=6966,ggg'|grep -oP '=.+?,'|awk -F'=|,' '$2~/6/{print $2}'|xargs -r -i echo -en \'{}\',|sed -r 's/^/[/;s/,$/]\n/'
zyb201314
33 天前
这种问题解决的方式或许有很多, 一为的学习, 2 为了解决问题, 直觉用正则解解决这种问题应该最简洁, 也是它的能力范围,但我想到的处理方式太过复杂,不是我想要的.
感谢 @ramirezyolis808 的/[^=,]*6[^,]*/g,感谢各位大佬, 此贴就此终结.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1033188

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX