我正在尝试使用||分割字符 例如:“ ab || cd” =“ aa”,“ ||”,“ cd” 我尝试过:
>>myString = String.split("aa||cd", ~r{(||?)})
但是有一个问题,原因是我无法使用| (是长生不老药或正则表达式令牌) 我需要一个正则表达式,因为我还有其他一些正则表达式子句起作用。所以... 我该怎么办?
答案 0 :(得分:3)
您可以通过转义|
字符并使用include_captures: true
来使用正则表达式:
iex(1)> String.split("aa||bb", ~r{\|\|}, include_captures: true)
["aa", "||", "bb"]
然而,使用Elixir的一个好处是,在许多情况下,它使正则表达式变得不必要。例如,假设二进制aa
和bb
的长度始终为2:
iex(2)> for <<i::binary-2 <- "aa||bb">>, do: i
["aa", "||", "bb"]
答案 1 :(得分:1)
String.split("aa||cd", ~r/\b/)
将解决问题!
\b
是一个单词边界!
在这种情况下,它将返回["aa", "||", "cd", ""]
!