Javascript 用于在\sSTUFF中匹配内容的正则表达式\r\n

Javascript 用于在\sSTUFF中匹配内容的正则表达式\r\n,javascript,regex,Javascript,Regex,我得到了一个可怕的ID分隔字符串。每个id由左侧的空格(“”)和右侧的回车('\r')包围。我想拆分这个字符串,并在javascript中获取所有ID 例如: “hey\r my\r name\r is”应返回数组[“hey”、“my”、“name”、“is”] 到目前为止,我试过: str.split(/ (.+)\r/g) str.split(/(?:\s)(.+)(?:\r)/) str.split(/\s(.+?=\r)/) 几乎没有用。我用str.split(/(?:\s)(.+)(

我得到了一个可怕的ID分隔字符串。每个id由左侧的空格(“”)和右侧的回车('\r')包围。我想拆分这个字符串,并在javascript中获取所有ID

例如:
“hey\r my\r name\r is”
应返回数组
[“hey”、“my”、“name”、“is”]

到目前为止,我试过:

str.split(/ (.+)\r/g)
str.split(/(?:\s)(.+)(?:\r)/)
str.split(/\s(.+?=\r)/)
几乎没有用。我用
str.split(/(?:\s)(.+)(?:\r)/)
得到了最接近的结果,但它给了我:
[''嘿',''我的',''名字',''是','']
。 什么是匹配空字符串

与此匹配的正则表达式是什么

编辑:

Id可以有任何其他空白字符,因此这是一个有效的Id:123\t234\n。及 'abc\r 123\n456\t\r'应返回['abc','123\n456\t']

谢谢

那么:

var parts = str.replace(/^\s+|\s+$/g, '').split(/\s+/)
也就是说,删除前导和尾随的空格字符,然后只拆分内部空格字符(并全部使用它们)


如果您只想在
\r
上拆分,则:

.split(/\r +/)
您可以将修剪更改为:

.replace(/^[\r ]+|[\r ]+$/g, '')
那么:

var parts = str.replace(/^\s+|\s+$/g, '').split(/\s+/)
也就是说,删除前导和尾随的空格字符,然后只拆分内部空格字符(并全部使用它们)


如果您只想在
\r
上拆分,则:

.split(/\r +/)
您可以将修剪更改为:

.replace(/^[\r ]+|[\r ]+$/g, '')

也许我不能理解问题的难度,但为什么你不能简单地使用:

str.replace(/^[ ]?|[ ]?$/, "").split("\r ");

对于您的所有示例,它似乎都很有效。

也许我不理解问题的难度,但为什么您不能简单地使用:

str.replace(/^[ ]?|[ ]?$/, "").split("\r ");
\s*(\S*)\s*\r
它似乎对你所有的例子都很有效

\s*(\S*)\s*\r
你的对手将在第一组

在javascript中,您可以迭代所有匹配项并像这样捕获

var myregexp = /\s*(\S*)\s*\r/g;
var match = myregexp.exec(subject);
while (match != null) {
    for (var i = 0; i < match.length; i++) {
        // matched text: match[i]
    }
    match = myregexp.exec(subject);
}
var myregexp=/\s*(\s*)\s*\r/g;
var match=myregexp.exec(主题);
while(匹配!=null){
对于(变量i=0;i
你的对手将在第一组

在javascript中,您可以迭代所有匹配项并像这样捕获

var myregexp = /\s*(\S*)\s*\r/g;
var match = myregexp.exec(subject);
while (match != null) {
    for (var i = 0; i < match.length; i++) {
        // matched text: match[i]
    }
    match = myregexp.exec(subject);
}
var myregexp=/\s*(\s*)\s*\r/g;
var match=myregexp.exec(主题);
while(匹配!=null){
对于(变量i=0;i
问题是该id可以有任何其他空格字符,因此这是一个有效的id:123\t234\n。str='hey\r my\r name\r is\ndsfs\t\r'应该返回一个is\ndsfs\t的id,然后用
[要拆分的空白字符列表]
替换
\s
\r
和一个空格)。是的,刚刚用:
str.replace(/^++\r++$/g.)。拆分(/\r++/)
)。我想我只是想把它复杂化了,在一个正则表达式Swoop中思考如何实现它。问题是id可以有任何其他空格字符,所以这是一个有效的id:123\t234\n。str='hey\r my\r name\r is\ndsfs\t\r'应该返回一个is\ndsfs\t的id,然后用
[要拆分的空白字符列表]
替换
\s
\r
和一个空格)。是的,刚刚用:
str.replace(/^++\r++$/g.)。拆分(/\r++/)
)。我想我只是想在一个regex swoop中为id思考如何实现它,从而使它过于复杂:“嘿\r我的\r名字\r是\ndsfs\t\r”它将删除\t和任何其他空白。id可以有\r以外的任何其他空白。对于id:“嘿\r我的\r名字\r是\ndsfs\t\r”,它将删除\t和任何其他空白。ID可以有除\r\n之外的任何其他空白。