我目前正在解决一个奇怪的 javascript 正则表达式问题。我试图匹配 /
或输入末尾之间的所有字符。例如这个字符串
admin/item/get
应匹配为:
[ 'admin', 'item', 'get' ]
我并不关心 /
是否是匹配的一部分,所以这个结果也对我有用:
[ 'admin/', 'item/', 'get' ]
为了匹配输入字符串s
,我使用正则表达式
s.match(/.+?[\/$]/g)
结果
[ 'admin/', 'item/' ]
据我了解,输入 $
的结尾在此字符集中不匹配。
当我尝试使用正则表达式仅匹配输入的结尾 s.match(/.+?$/g)
我得到了预期的结果 [ 'admin/item/获取']
。但是将 $
放入字符集 s.match(/.+?$/g)
中,匹配调用将返回 null
。
感谢任何帮助...
顺便说一句:我正在使用node.js 0.8.20
最佳答案
因为 $
在放置在字符集中时被视为字符。不过,这应该可以做到,它在非内存捕获组内使用交替,从而将 $
的含义恢复为主题结尾:
s.match(/.+?(?:\/|$)/g)
["admin/", "bla/", "bla"]
正如评论中提到的:
s.split('/')
["admin", "bla", "bla"]
关于javascript - 正则表达式与字符集中的 $ 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14974982/