js 正则匹配以某字符开始和结束的问题

2018 年 2 月 7 日
 qnsh

现在需要正则表达式匹配以#或者 @开始并且以#或者 @结束的字符,例如#你好##234:wdwww#+@eeur_222@

需要获取结果为你好,234:wdwww,eeur_222,求问如何实现。

7057 次点击
所在节点    问与答
7 条回复
ZhLTE
2018 年 2 月 7 日
^/#/@[/S]+/#/@$
songz
2018 年 2 月 7 日
(?!#|@|\+)([\d\w\W])
Biwood
2018 年 2 月 7 日
(#|@)([^#@]+)\1

需要二重匹配,一次搞不定
noe132
2018 年 2 月 7 日
> '#你好##234:wdwww#+@eeur_222@'.match(/#(.+?)#|@(.+?)@/g)
< ["#你好#", "#234:wdwww#", "@eeur_222@"]
luoway
2018 年 2 月 7 日
Q1:正则表达式匹配以#或者 @开始并且以#或者 @结束的字符
A1:str.replace(/^(?:#|@)(.*)(?:#|@)$/g, '$1')

Q2:#你好##234:wdwww#+@eeur_222@ 需要获取结果为你好,234:wdwww,eeur_222,求问如何实现
A2:str.replace(/[#+@]+/g, ',').replace(/^,(.*),$/g, '$1')
songz
2018 年 2 月 7 日
@songz #2
@Biwood #3
参考了 3 楼的,优化了下我自己的 2 楼,最终:
(?!#|@|\+)([^#@]+)
ZhLTE
2018 年 2 月 8 日
没注意审题
应该是(#|@)([^#@]+)\1 你需要的应该是 \2
..和三楼一致-。-

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

https://study.congcong.us/t/429217

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

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

© 2021 V2EX