Ê×Ò³
ѧϰ
»î¶¯
רÇø
¹¤¾ß
TVP
·¢²¼
¾«Ñ¡ÄÚÈÝ/¼¼ÊõÉçȺ/ÓŻݲúÆ·,¾¡ÔÚС³ÌÐò
Á¢¼´Ç°Íù

ÕýÔò±í´ïʽ | Regex

ΪElixirÌṩÕýÔò±í´ïʽ¡£

ÕýÔò±í´ïʽ»ùÓÚPCRE£¨Perl¼æÈÝÕýÔò±í´ïʽ£©£¬²¢»ùÓÚErlang :reÄ£¿é¹¹½¨¡£¸ü¶àÐÅÏ¢¿ÉÒÔÔÚ:reÄ£¿éÎĵµÖÐÕÒµ½¡£

¿ÉÒÔʹÓÃSigils´´½¨elxirÖеÄÕýÔò±í´ïʽ¡£~r»ò~R*

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
# A simple regular expressions that matches foo anywhere in the string
~r/foo/

# A regular expression with case insensitive and Unicode options
~r/foo/iu

ͨ¹ýSigils´´½¨µÄÕýÔò±í´ïʽ±»Ô¤±àÒë²¢´æ´¢ÔÚ.beamµµ°¸¡£×¢Ò⣬Èç¹ûÄúÕýÔÚÔ¤±àÒëElixir£¬Çë²ÎÔÄ¡°Ô¤±àÒ롱²¿·ÖÒÔ»ñµÃ¸ü¶àÐÅÏ¢£¬Õâ¿ÉÄÜÊÇÒ»¸öÎÊÌâ¡£

RegexÔÚÄÚ²¿±íʾΪRegex½á¹¹¡£Òò´Ë£¬%Regex{}¿ÉÒÔÔÚÐèҪƥÅäµÄʱºòʹÓá£Çë¼Çס£¬²»Äܱ£Ö¤À´×ÔͬһԴµÄÁ½¸öÕýÔò±í´ïʽÊÇÏàµÈµÄ£¬ÀýÈ磺

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
~r/(?<foo>.)(?<bar>.)/ == ~r/(?<foo>.)(?<bar>.)/

¿ÉÄÜ»á»ØÀ´true»òfalseÈ¡¾öÓÚÄúµÄ¼ÆËã»ú¡¢endian¡¢¿ÉÓõÄÓÅ»¯ÒÔ¼°ÆäËû¡£µ«ÊÇ£¬Äú¿ÉÒÔͨ¹ý·ÃÎÊsource×ֶΣ¬È»ºóÖ±½Ó±È½ÏÕâЩ×ֶΣº

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
~r/(?<foo>.)(?<bar>.)/.source == ~r/(?<foo>.)(?<bar>.)/.source

Ô¤±àÒë

ʹÓÃsigil¹¹½¨µÄÕýÔò±í´ïʽ±»Ô¤±àÒë²¢´æ´¢ÔÚ.beamµµ°¸¡£Èç¹ûÄúÕýÔÚÔ¤±àÒëElixirÒÔÔÚ²»Í¬µÄOTP°æ±¾ÖÐÔËÐУ¬Õâ¿ÉÄÜÊÇÒ»¸öÎÊÌ⣬ÒòΪOTP·¢Ðаæ¿ÉÄÜËæʱ¸üеײãÕýÔò±í´ïʽÒýÇæ¡£

³öÓÚÕâЩԭÒò£¬ÎÒÃÇ×ÜÊÇʹÓÃOTP°æ±¾Ô¤±àÒëElixirÏîÄ¿£¬ÒÔ±ãÔÚÉú²úÖÐÔËÐС£Èç¹û½»²æ±àÒëÊDZØÒªµÄ£¬Äú¿ÉÒÔÊÖ¶¯µ÷Óá£Regex.recompile/1»òRegex. recompile!/1ÈôÒªÖ´ÐÐÔËÐÐʱ°æ±¾¼ì²é£¬²¢ÔÚ±ØҪʱÖØбàÒëregex¡£

ÐÞÊηû

´´½¨Regexʱ¿ÉÓõÄÐÞÊηûÈçÏ£º

  • unicode£¨U£© -ʹµÃÏñUnicodeµÄ¾ßÌåģʽ\pºÍ±ä»¯ÐÞÊηûÏñ\w£¬\W£¬\sºÍÅóÓÑҲƥÅäUnicodeµÄ¡£ËüÆÚÍûÔÚÆ¥Åäʱ¸ø³öÓÐЧµÄUnicode×Ö·û´®
  • caseless £¨i£© - Ôö¼Ó²»Çø·Ö´óСд
  • dotall£¨s£© - ʹµãÆ¥Åä»»Ðзû£¬²¢½«»»ÐзûÉèÖÃΪanycrlf; еÄÉú²úÏßÉèÖÿÉÒÔͨ¹ýÉèÖÃÀ´¸²¸Ç(*CR)»ò(*LF)»ò(*CRLF)»ò(*ANY)¸ù¾ÝÖØÐÂÎĵµ
  • multiline£¨m£© - ÒýÆð^²¢$±ê¼ÇÿһÐеĿªÊ¼ºÍ½áÊø; ʹÓÃ\AºÍ\zÆ¥Åä×Ö·û´®µÄ½áβ»ò¿ªÍ·
  • extended£¨x£© - ³ý·ÇתÒå²¢ÔÊÐí#·Ö¸ô×¢ÊÍ£¬·ñÔò½«ºöÂÔ¿Õ°××Ö·û
  • firstline £¨f£© - Ç¿ÖÆδ궨ͼ°¸ÔÚµÚÒ»¸ö»»Ðзû֮ǰ»òµÚÒ»¸ö»»Ðзû´¦Æ¥Å䣬¾¡¹ÜÆ¥ÅäµÄÎı¾¿ÉÄÜ»áÔÚ»»ÐзûÉϼÌÐø
  • ungreedy£¨U£© - ·´×ªÕýÔò±í´ïʽµÄ¡°Ì°À·¡±£¨ÒÔÇ°µÄrÑ¡ÏîÒÑÆúÓöø²»ÔÞ³ÉU£©²»¿ÉÓõÄÑ¡ÏîÓУº
  • anchored- ²»¿ÉÓã¬Ê¹ÓÃ^»ò\A¸ÄΪ
  • dollar_endonly- ²»¿ÉÓã¬Çë\z¸ÄÓÃ
  • no_auto_capture- ²»¿ÉÓã¬Çë?:¸ÄÓÃ
  • newline- ²»¿ÉÓ㬸ù¾ÝÖØÐÂÎĵµ£¬ÔÚÕýÔò±í´ïʽÖÐʹÓÃ(*CR)»ò(*LF)»ò(*CRLF)»ò(*ANYCRLF)»ò(*ANY)ÔÚ¿ªÊ¼´¦

²¶×½

±¾Ä£¿éÖеÄÐí¶àº¯Êýͨ¹ý:captureÑ¡Ôñ¡£ËùÖ§³ÖµÄÖµÊÇ£º

  • :all - ËùÓⶻñµÄ×Óģʽ£¬°üÀ¨ÍêÕûµÄÆ¥Åä×Ö·û´®£¨ÕâÊÇĬÈϵģ©
  • :first-Ö»ÓеÚÒ»¸ö²¶»ñµÄ×Óģʽ£¬ËüʼÖÕÊÇ×Ö·û´®µÄÍêÈ«Æ¥Å䲿·Ö£»ËùÓÐÏÔʽ²¶»ñµÄ×Óģʽ¶¼±»¶ªÆú
  • :all_but_first-³ýÁ˵ÚÒ»¸öÆ¥Åä×Óģʽ£¬¼´ËùÓÐÏÔʽ²¶»ñ×Óģʽ£¬¶ø²»ÊÇ×Ö·û´®µÄÍêÈ«Æ¥Å䲿·Ö¡£
  • :none-¸ù±¾²»·µ»ØÆ¥ÅäµÄ×Óģʽ
  • :all_names-²¶»ñRegexÖеÄËùÓÐÃû³Æ
  • list(binary)-Òª²¶»ñµÄÃüÃû²¶»ñµÄÁбí

ÀàÐÍ

T£¨£©

¹¦ÄÜ

±àÒ루ԴÂ룬ѡÏî\¡°¡±£©

±àÒëÕýÔò±í´ïʽ

±àÒ룡£¨À´Ô´£¬Ñ¡Ïî\¡°¡±£©

±àÒëÕýÔò±í´ïʽ²¢Òý·¢Regex.CompileErrorÈçÓдíÎó

escape£¨×Ö·û´®£©

תÒå×Ö·û´®£¬ÒÔ±ãÔÚÕýÔò±í´ïʽÖа´×ÖÃæÆ¥Åä¡£

Æ¥Å䣿£¨ÕýÔò±í´ïʽ£¬×Ö·û´®£©

·µ»ØָʾÊÇ·ñÆ¥ÅäµÄ²¼¶ûÖµ¡£

named_captures£¨ÕýÔò±í´ïʽ£¬×Ö·û´®£¬Ñ¡Ïî\ []£©

·µ»Ø¸ø¶¨µÄ²¶»ñ×÷ΪµØͼ»ònilÈç¹ûûÓÐÕÒµ½²¶»ñ¡£Ñ¡Ôñ:return¿ÉÒÔÉèÖÃΪ:index»ñÈ¡Ë÷Òý

Ãû£¨ÕýÔò±í´ïʽ£©

·µ»ØÕýÔò±í´ïʽÖеÄÃû³ÆÁÐ±í¡£

OPTS£¨ÕýÔò±í´ïʽ£©

ÒÔ×Ö·û´®µÄÐÎʽ·µ»ØregexÑ¡Ïî¡£

re_pattern£¨ÕýÔò±í´ïʽ£©

·µ»Ø»ù´¡re_patternÔÚÕýÔò±í´ïʽÖÐ

ÖØбàÒ루ÕýÔò±í´ïʽ£©

Èç¹ûÓбØÒª£¬ÖØбàÒëÏÖÓеÄÕýÔò±í´ïʽ

ÖØбàÒ룡£¨ÕýÔò±í´ïʽ£©

Öع¹ÏÖÓÐÕýÔò±í´ïʽ²¢Òý·¢Regex.CompileErrorÈçÓдíÎó

ÕýÔò±í´ïʽ£¿£¨Ï

·µ»ØtrueÈç¹û¸ø¶¨termÊÇÒ»ÖÖÉóÅС£·ñÔò·µ»Øfalse

Ìæ»»£¨ÕýÔò±í´ïʽ£¬×Ö·û´®£¬Ìæ»»£¬Ñ¡Ïî\ []£©

½ÓÊÕregex¡¢¶þ½øÖƺÍÌæ»»£¬·µ»ØÒ»¸öеĶþ½øÖÆ£¬ÆäÖÐËùÓÐÆ¥ÅäÏÓÉÌæ»»Ìæ»»¡£

ÔËÐУ¨ÕýÔò±í´ïʽ£¬×Ö·û´®£¬Ñ¡Ïî\ []£©

Õë¶Ô¸ø¶¨µÄ×Ö·û´®ÔËÐÐÕýÔò±í´ïʽ£¬Ö±µ½µÚÒ»´ÎÆ¥Åä¡£Ëü·µ»ØÒ»¸ö°üº¬ËùÓⶻñµÄÁбí»òÕßnilÈç¹ûûÓÐÆ¥Åä·¢Éú

ɨÃ裨ÕýÔò±í´ïʽ£¬×Ö·û´®£¬Ñ¡Ïî\ []£©

ͬrun/3£¬µ«¶à´ÎɨÃèÄ¿±ê£¬ÊÕ¼¯ÕýÔò±í´ïʽµÄËùÓÐÆ¥ÅäÏî¡£

Ô´£¨ÕýÔò±í´ïʽ£©

ÒÔ¶þ½øÖÆÐÎʽ·µ»ØregexÔ´¡£

split£¨ÕýÔò±í´ïʽ£¬×Ö·û´®£¬Ñ¡Ïî\ []£©

¸ù¾Ý¸ø¶¨µÄģʽºÍ¸ø¶¨µÄ²¿¼þÊý²ð·Ö¸ø¶¨µÄÄ¿±ê¡£

°æ£¨£©

·µ»Ø»ù´¡regexÒýÇæµÄ°æ±¾¡£

T£¨£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
t() :: %Regex{opts: binary, re_pattern: term, re_version: term, source: binary}

±àÒ루ԴÂ룬ѡÏî\¡°¡±£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
compile(binary, binary | [term]) :: {:ok, t} | {:error, any}

±àÒëÕýÔò±í´ïʽ¡£

¸ø¶¨µÄÑ¡Ïî¼È¿ÉÒÔÊǶþ½øÖƵģ¬Ò²¿ÉÒÔÊÇ×Ö·û±íʾ¸ø¶¨¸ø~rÈçErlangËùÆÚÍûµÄ£¬Sgil»òÑ¡ÏîÁбí:reÄ£¿é¡£

Ëü»ØÀ´ÁË{:ok, regex}Èç¹û³É¹¦µÄ»°£¬{:error, reason}·ñÔò¡£

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.compile("foo")
{:ok, ~r"foo"}

iex> Regex.compile("*foo")
{:error, {'nothing to repeat', 0}}

±àÒ룡£¨À´Ô´£¬Ñ¡Ïî\¡°¡±£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
compile!(binary, binary | [term]) :: t

±àÒëÕýÔò±í´ïʽ²¢Òý·¢Regex.CompileErrorÍòÒ»³ö´í¡£

ÌÓÉú£¨×Ö·û´®£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
escape(String.t) :: String.t

½«×Ö·û´®×ªÒå³ÉÕýÔò±í´ïʽÖеÄÆ¥Åä×Ö·û´®¡£

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.escape(".")
"\\."

iex> Regex.escape("\\what if")
"\\\\what\\ if"

Æ¥Å䣿£¨ÕýÔò±í´ïʽ£¬×Ö·û´®£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
match?(t, String.t) :: boolean

·µ»ØÒ»¸ö²¼¶ûÖµ£¬Ö¸Ê¾ÊÇ·ñÆ¥Åä¡£

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.match?(~r/foo/, "foo")
true

iex> Regex.match?(~r/foo/, "bar")
false

named_captures£¨ÕýÔò±í´ïʽ£¬×Ö·û´®£¬Ñ¡Ïî\ []£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
named_captures(t, String.t, [term]) :: map | nil

½«¸ø¶¨µÄ²¶×½×÷ΪµØͼ·µ»Ø£¬»òÕßnilÈç¹ûÕÒ²»µ½²¶×½¡£¸ÃÑ¡Ïî:return¿ÉÒÔÉèÖÃ:indexΪ»ñÈ¡Ë÷Òý¡£

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.named_captures(~r/c(?<foo>d)/, "abcd")
%{"foo" => "d"}

iex> Regex.named_captures(~r/a(?<foo>b)c(?<bar>d)/, "abcd")
%{"bar" => "d", "foo" => "b"}

iex> Regex.named_captures(~r/a(?<foo>b)c(?<bar>d)/, "efgh")
nil

Ãû£¨ÕýÔò±í´ïʽ£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
names(t) :: [String.t]

·µ»ØÕýÔò±í´ïʽÖеÄÃû³ÆÁÐ±í¡£

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.names(~r/(?<foo>bar)/)
["foo"]

OPTS£¨ÕýÔò±í´ïʽ£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
opts(t) :: String.t

ÒÔ×Ö·û´®µÄÐÎʽ·µ»ØregexÑ¡Ïî¡£

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.opts(~r(foo)m)
"m"

re_pattern£¨ÕýÔò±í´ïʽ£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
re_pattern(t) :: term

·µ»Ø»ù´¡re_patternÔÚÕýÔò±í´ïʽÖС£

ÖØбàÒ루ÕýÔò±í´ïʽ£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
recompile(t) :: t

Èç¹ûÓбØÒª£¬Öع¹ÏÖÓеÄÕýÔò±í´ïʽ¡£

Õ⽫¼ì²é´æ´¢ÔÚÕýÔò±í´ïʽÖеİ汾£¬²¢ÔÚ°æ±¾²»Æ¥ÅäµÄÇé¿öÏÂÖØбàÒëregex¡£

ÖØбàÒ룡£¨ÕýÔò±í´ïʽ£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
recompile!(t) :: t

Öع¹ÏÖÓÐÕýÔò±í´ïʽ²¢Òý·¢Regex.CompileErrorÍòÒ»³ö´í¡£

ÕýÔò±í´ïʽ£¿£¨Ï

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
regex?(any) :: boolean

»Ø±¨trueÈç¹û¸ø¶¨termÊÇÒ»ÖÖÉóÅС£·ñÔò·µ»Øfalse...

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.regex?(~r/foo/)
true

iex> Regex.regex?(0)
false

Ìæ»»£¨ÕýÔò±í´ïʽ£¬×Ö·û´®£¬Ìæ»»£¬Ñ¡Ïî\ []£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
replace(t, String.t, String.t | (... -> String.t), [term]) :: String.t

½ÓÊÕregex¡¢¶þ½øÖƺÍÌæ»»£¬·µ»ØÒ»¸öжþ½øÖÆ£¬ÆäÖÐËùÓÐÆ¥Å䶼ÓÉÌæ»»Ìæ»»¡£

Ìæ»»¿ÉÒÔÊÇ×Ö·û´®»òº¯Êý¡£¸Ã×Ö·û´®±»ÓÃ×÷ÿ¸öÆ¥ÅäµÄÌæ»»£¬²¢ÇÒËüÔÊÐíͨ¹ý\N»ò·ÃÎÊÌض¨µÄ²¶×½£¬²¶×½ÔÚ\g{N}ÄÄÀïN¡£ÔÚʹÓõÄÇé¿öÏÂ\0£¬²åÈëÕû¸ö±ÈÈü¡£Çë×¢Ò⣬ÔÚÕýÔò±í´ïʽÖУ¬·´Ð±¸ÜÐèÒª±»×ªÒ壬Òò´Ëʵ¼ÊÉÏÄúÐèҪʹÓÃ\\NºÍ\\g{N}¡£

µ±Ìæ»»ÊÇÒ»¸öº¯Êýʱ£¬¸Ãº¯Êý¿ÉÄܾßÓÐN£¬ÆäÖÐÿ¸ö²ÎÊýÓ³Éäµ½Ò»¸ö²¶»ñ£¬µÚÒ»¸ö²ÎÊýÊÇÕû¸öÆ¥Åä¡£Èç¹ûº¯ÊýÆÚÍûµÄ²ÎÊý±È²¶»ñµÄÒª¶à£¬ÔòÆäÓàµÄ²ÎÊý½«ÊÕµ½¡£""...

±¸Ñ¡·½°¸

  • :global - when false, replaces only the first occurrence (defaults to true) Examplesiex> Regex.replace(~r/d/, "abc", "d") "abc" iex> Regex.replace(~r/b/, "abc", "d") "adc" iex> Regex.replace(~r/b/, "abc", "[\\0]") "a[b]c" iex> Regex.replace(~r/a(b|d)c/, "abcadc", "[\\1]") "[b][d]" iex> Regex.replace(~r/\.(\d)$/, "500.5", ".\\g{1}0") "500.50" iex> Regex.replace(~r/a(b|d)c/, "abcadc", fn _, x -> "[#{x}]" end) "[b][d]" iex> Regex.replace(~r/a/, "abcadc", "A", global: false) "Abcadc"run(regex, string, options \ [])run(t, binary, [term]) :: nil | [binary] | [{integer, integer}]Runs the regular expression against the given string until the first match. It returns a list with all captures or nil if no match occurred.Options
  • :return-É趨Ϊ:index·µ»ØË÷Òý¡£Ä¬ÈÏΪ:binary...
  • :capture - ÔÚ½á¹ûÖÐÒª²¶»ñʲô¡£¼ì²émoduledoc RegexÒԲ鿴¿ÉÄܵIJ¶»ñÖµ¡£

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.run(~r/c(d)/, "abcd")
["cd", "d"]

iex> Regex.run(~r/e/, "abcd")
nil

iex> Regex.run(~r/c(d)/, "abcd", return: :index)
[{2, 2}, {3, 1}]

ɨÃ裨ÕýÔò±í´ïʽ£¬×Ö·û´®£¬Ñ¡Ïî\ []£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
scan(t, String.t, [term]) :: [[String.t]]

ͬrun/3£¬µ«ÊǶà´ÎɨÃèÄ¿±ê£¬ÊÕ¼¯ÕýÔò±í´ïʽµÄËùÓÐÆ¥Åä¡£

·µ»ØÁбíÁÐ±í£¬ÆäÖÐÖ÷ÁбíÖеÄÿ¸öÌõÄ¿±íʾƥÅ䣬´ÎÁбíÖеÄÿ¸öÌõÄ¿±íʾ²¶»ñµÄÄÚÈÝ¡£

±¸Ñ¡·½°¸

  • :return-É趨Ϊ:index·µ»ØË÷Òý¡£Ä¬ÈÏΪ:binary...
  • :capture-´Ó½á¹ûÖеõ½Ê²Ã´¡£¼ì²éÄ£×éRegexÈôÒª²é¿´¿ÉÄܵIJ¶»ñÖµ£¬ÇëÖ´ÐÐÒÔϲÙ×÷¡£

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.scan(~r/c(d|e)/, "abcd abce")
[["cd", "d"], ["ce", "e"]]

iex> Regex.scan(~r/c(?:d|e)/, "abcd abce")
[["cd"], ["ce"]]

iex> Regex.scan(~r/e/, "abcd")
[]

iex> Regex.scan(~r/\p{Sc}/u, "$, ?, and €")
[["$"], ["?"], ["€"]]

Ô´£¨ÕýÔò±í´ïʽ£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
source(t) :: String.t

ÒÔ¶þ½øÖÆÐÎʽ·µ»ØregexÔ´¡£

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.source(~r(foo))
"foo"

split£¨ÕýÔò±í´ïʽ£¬×Ö·û´®£¬Ñ¡Ïî\ []£©

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
split(t, String.t, [term]) :: [String.t]

¸ù¾Ý¸ø¶¨µÄģʽºÍ¸ø¶¨µÄ²¿¼þÊý²ð·Ö¸ø¶¨µÄÄ¿±ê¡£

±¸Ñ¡·½°¸

  • :parts-Ö¸¶¨Ê±£¬½«×Ö·û´®²ð·ÖΪ¸ø¶¨ÊýÁ¿µÄ²¿¼þ¡£Èç¹ûûÓоßÌå˵Ã÷£¬:partsĬÈÏΪ:infinity£¬Ëü½«¸ù¾Ý¸ø¶¨µÄģʽ½«×Ö·û´®²ð·ÖΪ¾¡¿ÉÄܶàµÄ²¿·Ö¡£
  • :trim- ºÎʱtrue£¬""´Ó½á¹ûÖÐɾ³ý¿Õ×Ö·û´®£¨£©¡£
  • :on-Ö¸¶¨Òª²ð·Ö×Ö·û´®µÄ²¶»ñÄÚÈÝ£¬ÒÔ¼°°´Ê²Ã´Ë³Ðò½øÐвð·Ö¡£Ä¬ÈÏΪ:firstÕâÒâζ×ÅÕýÔò±í´ïʽÖеIJ¶»ñ²»Ó°Ïì²ð·Ö¹ý³Ì¡£
  • :include_captures-ºÎʱtrue£¬ÔÚ½á¹ûÖаüÀ¨ÕýÔò±í´ïʽµÄÆ¥Å䡣ĬÈÏΪfalse...

ʵÀý

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
iex> Regex.split(~r{-}, "a-b-c")
["a", "b", "c"]

iex> Regex.split(~r{-}, "a-b-c", [parts: 2])
["a", "b-c"]

iex> Regex.split(~r{-}, "abc")
["abc"]

iex> Regex.split(~r{}, "abc")
["a", "b", "c", ""]

iex> Regex.split(~r{a(?<second>b)c}, "abc")
["", ""]

iex> Regex.split(~r{a(?<second>b)c}, "abc", on: [:second])
["a", "c"]

iex> Regex.split(~r{(x)}, "Elixir", include_captures: true)
["Eli", "x", "ir"]

iex> Regex.split(~r{a(?<second>b)c}, "abc", on: [:second], include_captures: true)
["a", "b", "c"]

°æ£¨£©

·µ»Ø»ù´¡RegexÒýÇæµÄ°æ±¾¡£

ɨÂë¹Ø×¢ÌÚѶÔÆ¿ª·¢Õß

ÁìÈ¡ÌÚѶÔÆ´ú½ðȯ

http://www.vxiaotou.com