gpt4 book ai didi

javascript - 正则表达式 - 匹配字符而不是数字

转载 作者:行者123 更新时间:2023-12-02 16:26:29 25 4
gpt4 key购买 nike

我想匹配一个字符串后跟多个选项卡和另一个字符串。第二个字符串不能包含任何数字。

所以我想要 'someText\t\tsomeText2' -> someText & somteText2

我有以下 JavaScript:

var linePattern = /(^[^\s].+?)\t+([^\d].+)/
var regexp = new RegExp(linePattern);
var parts = 'someText\t\t1234'.match(regexp);

不确定为什么它实际上匹配...它不应该...

最佳答案

因为最后的 .+ 也会匹配数字。

^(.*?)\t\t+(\D+)$

或者

^(.*?)\t+(\D+)$

DEMO

你的正则表达式,

    (^             [^\s]               .+?)               \t+                          ([^\d].+)
^ ^ ^
Start Matches the Matches all the chars Matches only the first tab since the second character must not be a non-digit character. So `[^\d]` matches the second tab. and the `.+` matches all the chars upto the last. Finally you got a match.
first non-space upto the first tab
character.

代码:

> var linePattern = /^(.*?)\t+(\D+)$/;
undefined
> var regexp = new RegExp(linePattern);
undefined
> var parts = 'someText\t\t1234'.match(regexp);
undefined
> parts
null
> var parts = 'someText\t\tfoo'.match(regexp);
undefined
> parts
[ 'someText\t\tfoo',
'someText',
'foo',
index: 0,
input: 'someText\t\tfoo' ]

关于javascript - 正则表达式 - 匹配字符而不是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28641346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com