0

我有一个带有两个可能输出的字符串,它要么被除以,&|要么只是|有一种方法来执行 or 表达式来确定在正则表达式中哪些是正确的?

4

1 回答 1

3

我认为您的意思是您希望使用&|or匹配字符串|,然后在匹配的情况下检查匹配的是哪种情况?

如果是这样,您可以通过匹配&可选的正则表达式来做到这一点 - 正如 HamZa 在对问题的评论中所建议的那样 - 并使用re-find或捕获组来捕获字符串的匹配部分,然后您可以检查:

(re-find #"&?\|" "asdf|adsf")
;= "|"

(re-find #"&?\|" "asdf&|asdf")
;= "&|"

使用捕获组(用于peek获取向量的最终元素):

(re-matches #".*[^&](&?\|).*" "asdf&|asdf")
;= ["asdf&|asdf" "&|"]
于 2013-07-15T13:40:45.920 回答