Javascript 将字符串拆分为两个字符
首先,如果字符串具有以下格式,我希望匹配:Javascript 将字符串拆分为两个字符,javascript,regex,Javascript,Regex,首先,如果字符串具有以下格式,我希望匹配:$abc#xyz或$abc.xyz abc和xyz仅表示字母数字字符串 如果匹配,那么我需要提取第一个$abc和最后一个#xyz,所有这些都使用纯javascript和regex 图案的顺序如下: 美元符号 无限字母数字字符串 空间 散列或点 无限字母数字字符串 提前感谢您的帮助。请尝试以下正则表达式: /^(\$[a-zA-Z\d]+) ([#.][a-zA-Z\d]+)$/ 说明: ^ Start of line. (
$abc#xyz
或$abc.xyz
abc和xyz仅表示字母数字字符串
如果匹配,那么我需要提取第一个$abc
和最后一个#xyz
,所有这些都使用纯javascript和regex
图案的顺序如下:
提前感谢您的帮助。请尝试以下正则表达式:
/^(\$[a-zA-Z\d]+) ([#.][a-zA-Z\d]+)$/
说明:
^ Start of line.
( Start capturing group.
\$ Literal dollar sign.
[a-zA-Z\d] Any letter in a-z or A-Z, or any digit.
+ One or more of the previous.
) End capturing group.
<space> Literal space.
( Start second capturing group.
[#.] Either a number sign or a period.
[a-zA-Z\d]+
) End second capturing group.
$ End of line.
请尝试以下正则表达式:
/^(\$[a-zA-Z\d]+) ([#.][a-zA-Z\d]+)$/
说明:
^ Start of line.
( Start capturing group.
\$ Literal dollar sign.
[a-zA-Z\d] Any letter in a-z or A-Z, or any digit.
+ One or more of the previous.
) End capturing group.
<space> Literal space.
( Start second capturing group.
[#.] Either a number sign or a period.
[a-zA-Z\d]+
) End second capturing group.
$ End of line.
像这样
if(str.match(/^\$[a-z0-9]+ (#|\.)[a-z0-9]+$/i)) {
var parts = str.split(' ');
}
更新:显然有多种方法可以实现这一点。没有一个正则表达式。如果使用捕获组,您甚至可以在一个步骤()中提取字符串。像这样吗
if(str.match(/^\$[a-z0-9]+ (#|\.)[a-z0-9]+$/i)) {
var parts = str.split(' ');
}
更新:显然有多种方法可以实现这一点。没有一个正则表达式。如果您使用捕获组,您甚至可以在一个步骤()中提取字符串。因此模式是美元符号、三个字母数字字符、空格、哈希、三个字母数字字符?所以您不想使用
.xyz
?你为什么说第一个和最后一个?我认为字符串只能存在于这两个“单词”中。模式是一个美元符号,无限的字母数字字符,空格,散列或点,无限的字母数字字符。所以模式是美元符号,三个字母数字字符,空格,散列,三个字母数字字符?所以您不想使用.xyz
?你为什么说第一个和最后一个?我认为字符串只能存在于这两个“单词”中。@1该模式是一个美元符号,以及无限的字母数字字符、空格、哈希或点,以及无限的字母数字字符。如果您将捕获组包括\$
和[\35;。]
那么这正是OP想要的。如果你让捕获组包括\$
和[\35;.]
那么这正是OP想要的。你需要逃逸
(或者在不需要逃逸的地方使用[\35;.]
)。你需要逃逸
(或者使用[\35;
其中不需要转义)。