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

2018-02-07 16:01:24 +08:00
 qnsh

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

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

6490 次点击
所在节点    问与答
7 条回复
ZhLTE
2018-02-07 16:06:27 +08:00
^/#/@[/S]+/#/@$
songz
2018-02-07 16:58:08 +08:00
(?!#|@|\+)([\d\w\W])
Biwood
2018-02-07 17:18:26 +08:00
(#|@)([^#@]+)\1

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

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

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

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

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

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

© 2021 V2EX