我有一个字符串有两个可能出来它将被&|
除或只是|
有没有办法做一个或表达式来确定哪些在正则表达式中是真的?< / p>
答案 0 :(得分:3)
我认为你的意思是希望将字符串与&|
或|
匹配,然后在匹配的情况下,检查匹配的是哪种情况?
如果是这样,您可以通过匹配&
是可选的正则表达式来完成 - 正如HamZa在对问题的评论中所建议的那样 - 并使用re-find
或捕获组来捕获匹配您可以检查的字符串的一部分:
(re-find #"&?\|" "asdf|adsf")
;= "|"
(re-find #"&?\|" "asdf&|asdf")
;= "&|"
使用捕获组(使用peek
获取向量的最终元素):
(re-matches #".*[^&](&?\|).*" "asdf&|asdf")
;= ["asdf&|asdf" "&|"]