>

테스트 문자열 :

str = "#www #SoulMusic #50_shades_of_Blue # ##WorldWideWeb 
      #okie_dokkie #fr!ends #!alPacino #wonderfulRide 
      #good#club #rhônealpes #trèsbon #øypålandet http://example.com/#comment 
      #moreTags #www nobody #h3y!boy #EMAIL"

이 내가 뭘하려 :

String.split(str, ~r/\B(#[á-úÁ-Úä-üÄ-Üa-zA-Z0-9_]+)/, trim: true, 
            include_captures: true)

그러나 URL의 해시 태그는 제외하지 않으며 이것이 내가받는 것입니다 :

["#www", " ", "#SoulMusic", " ", "#50_shades_of_Blue", " # #", "#WorldWideWeb", " ", "#okie_dokkie", " ", "#fr", "!ends #!alPacino ", "#wonderfulRide", " ", "#good", "#club ", "#rhônealpes", " ", "#trèsbon", " ", "#øypålandet", " http://example.com/", "#comment", " ", "#moreTags", " ", "#www", " nobody ", "#h3y", "!boy ", "#EMAIL"]

내가 얻을 무엇을 목표로

["#www", "#SoulMusic", "#50_shades_of_Blue", "#WorldWide",
"#okie_dokkie", "#fr", "wonderfulRide", "#good",
"#rhônealpes", "#trèsbon", "#øypålandet", "#moreTags", "#www", 
"#h3y", "#EMAIL"]

이 이것에 어떤 도움을 이해할 수있을 것이다.


  • 답변 # 1

    성냥 만 필요한 경우 Regex.scan/2 를 찾고 있습니다 :

    iex(1)> str = "#www #SoulMusic #50_shades_of_Blue # ##WorldWideWeb
    ...(1)>       #okie_dokkie #fr!ends #!alPacino #wonderfulRide
    ...(1)>       #good#club #rhônealpes #trèsbon #gøypålandet http://example.com/#comment
    ...(1)>       #moreTags #www nobody #EMAIL"
    "#www #SoulMusic #50_shades_of_Blue # ##WorldWideWeb \n      #okie_dokkie #fr!ends #!alPacino #wonderfulRide \n      #good#club #rhônealpes #trèsbon #gøypålandet http://example.com/#comment \n      #moreTags #www nobody #EMAIL"
    iex(2)> Regex.scan(~r/\B#[á-úÁ-Úä-üÄ-Üa-zA-Z0-9_]+/, str)
    [["#www"], ["#SoulMusic"], ["#50_shades_of_Blue"], ["#WorldWideWeb"],
     ["#okie_dokkie"], ["#fr"], ["#wonderfulRide"], ["#good"], ["#rhônealpes"],
     ["#trèsbon"], ["#gøypålandet"], ["#comment"], ["#moreTags"], ["#www"],
     ["#EMAIL"]]
    
    

    이이 목록의 목록을 반환합니다. Enum.concat/1 를 사용하여 문자열 목록을 얻기 위해 평평하게 할 수 있습니다. :

    iex(3)> Regex.scan(~r/\B#[á-úÁ-Úä-üÄ-Üa-zA-Z0-9_]+/, str) |> Enum.concat
    ["#www", "#SoulMusic", "#50_shades_of_Blue", "#WorldWideWeb", "#okie_dokkie",
     "#fr", "#wonderfulRide", "#good", "#rhônealpes", "#trèsbon",
     "#gøypålandet", "#comment", "#moreTags", "#www", "#EMAIL"]
    
    

관련 자료

  • 이전 문자열에서 소수를 구문 분석하기 위해 Swift의 JSON 로더를 강제하는 방법
  • 다음 python - 장고 입력 시간 및 분, 분으로 저장