Javascript 正则表达式以前有过吗,有组吗

Javascript 正则表达式以前有过吗,有组吗,javascript,regex,regex-group,Javascript,Regex,Regex Group,在JS中,我应该做什么来匹配并将或~之前的任何内容放入这个正则表达式模式中的组one 模式:(?*)(?:>| ~)(?*) 字符串: aaa bbb>ccc ddd~eee 在本例中,aaa应进入组。使用 ^(?.*?(?:>| ~)(?*)$ 备选方案: ^(?.*?(:[>~](?*))$ 看 解释 -------------------------------------------------------------------------------- ^字符串的开头 -

在JS中,我应该做什么来匹配并将
~
之前的任何内容放入这个正则表达式模式中的组
one

模式:
(?*)(?:>| ~)(?*)

字符串:

aaa
bbb>ccc
ddd~eee
在本例中,
aaa
应进入
组。

使用

^(?.*?(?:>| ~)(?*)$
备选方案

^(?.*?(:[>~](?*))$

解释

--------------------------------------------------------------------------------
^字符串的开头
--------------------------------------------------------------------------------
(?分组并捕获到“一”:
--------------------------------------------------------------------------------
.*?除\n(0次或多次)以外的任何字符
(匹配尽可能少的金额)
--------------------------------------------------------------------------------
)“一”的结尾
--------------------------------------------------------------------------------
(?:组,但不捕获(可选)
(匹配尽可能多的金额):
--------------------------------------------------------------------------------
(?:组,但不捕获:
--------------------------------------------------------------------------------
>                        '>'
--------------------------------------------------------------------------------
|或
--------------------------------------------------------------------------------
~                        '~'
--------------------------------------------------------------------------------
)分组结束
--------------------------------------------------------------------------------
(?分组并捕获到“两个”:
--------------------------------------------------------------------------------
.*除\n(0或更多)以外的任何字符
次数(与最大金额匹配)
(可能的)
--------------------------------------------------------------------------------
)“两个”的结尾
--------------------------------------------------------------------------------
)?                       分组结束
--------------------------------------------------------------------------------
$在可选的前\n和
一串
使用

^(?.*?(?:>| ~)(?*)$
备选方案

^(?.*?(:[>~](?*))$

解释

--------------------------------------------------------------------------------
^字符串的开头
--------------------------------------------------------------------------------
(?分组并捕获到“一”:
--------------------------------------------------------------------------------
.*?除\n(0次或多次)以外的任何字符
(匹配尽可能少的金额)
--------------------------------------------------------------------------------
)“一”的结尾
--------------------------------------------------------------------------------
(?:组,但不捕获(可选)
(匹配尽可能多的金额):
--------------------------------------------------------------------------------
(?:组,但不捕获:
--------------------------------------------------------------------------------
>                        '>'
--------------------------------------------------------------------------------
|或
--------------------------------------------------------------------------------
~                        '~'
--------------------------------------------------------------------------------
)分组结束
--------------------------------------------------------------------------------
(?分组并捕获到“两个”:
--------------------------------------------------------------------------------
.*除\n(0或更多)以外的任何字符
次数(与最大金额匹配)
(可能的)
--------------------------------------------------------------------------------
)“两个”的结尾
--------------------------------------------------------------------------------
)?                       分组结束
--------------------------------------------------------------------------------
$在可选的前\n和
一串

您还可以使用字符类和以
[^

^(?<one>[^>~\n]+)(?:[>~](?<two>.*))?$
^(?[^>~\n]+)(?:[>~](?*)$
  • ^
    字符串的开头
  • (?[^>~\n]+)
    一个匹配除
    ~
    或换行符以外的任何字符的1+倍
  • (?:
    非捕获组
    • [>~]
      匹配
      ~
    • (?*)
      Grouptwo将任何字符(换行符除外)匹配0+次
  • )?
    关闭组并将其设置为可选
  • $
    字符串结尾

您还可以使用字符类和以
[^

^(?<one>[^>~\n]+)(?:[>~](?<two>.*))?$
^(?[^>~\n]+)(?:[>~](?*)$
  • ^
    字符串的开头