gpt4 book ai didi

javascript - 需要一个 Javascript 正则表达式

转载 作者:行者123 更新时间:2023-11-29 22:08:49 26 4
gpt4 key购买 nike

假设我有一个像 'a b xy c pq' 这样的字符串,我需要编写一个正则表达式以便 match() 方法返回一个数组,如下所示: ['a','b','xy','c','pq']

让我们看一些例子:

>>> 'x y z '.match(/\w{1,3}\s+/g)
['x ', 'y ', 'z ']

>>> 'x y z '.match(/(\w{1,3})\s+/g)
['x ', 'y ', 'z ']

如您所见,即使我添加括号,它也返回相同的结果。我希望结果没有 空格。另外,最好不要在源字符串中添加结尾空格。

你认为我可以在哪里改进这个正则表达式以获得我想要的东西?

请注意,我不想使用 exec(),因为它必须运行多次才能获得所有匹配项。

另请注意,使用 split()

可以轻松解决此问题
>>> 'x y z'.split(/\s/)
['x', 'y', 'z']

>>> "a b xy c pq".split(/\s/)
['a','b','xy','c','pq']

但是,我还需要验证字符串。每个匹配项最多只能有三个字符,并且每个匹配项应该是一个没有特殊字符的字母数字词。因此我不能使用 split(),因为在那种情况下我必须分别验证每个匹配项。我想通过一个正则表达式来完成这一切。

我想在单个正则表达式中进行验证和拆分的原因是因为我需要在一个事件中做很多这样的事情,因此我需要尽可能快地进行。

最佳答案

通过附加 \s+,模式匹配空格字符。

删除\s+:

'x y z '.match(/\w{1,3}/g)
// => ["x", "y", "z"]

使用\b,您可以在单词边界进行匹配。

'x y z '.match(/\b\w{1,3}\b/g)
// => ["x", "y", "z"]
'x yyyyyyyyyy z '.match(/\b\w{1,3}\b/g)
// => ["x", "z"]

关于javascript - 需要一个 Javascript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19298260/

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