You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript正则匹配包含数字加xyz后缀的字符串

字符串数组筛选需求

给定任意字符串数组,需要过滤出所有满足「包含至少1个数字,且该数字后直接紧跟后缀xyz」的字符串,参考输入输出示例如下:

输入:['Carrot 22xyz', 'Mango', 'Banana 8xyz each', 'Kiwi']
输出:['Carrot 22xyz', 'Banana 8xyz each']

常用编程语言实现方案
  • Python 实现
    核心采用正则匹配规则\d+xyz,其中\d匹配数字字符,+表示匹配至少1个数字,随后直接拼接xyz即可命中目标规则。
import re

def filter_valid_strings(input_arr: list[str]) -> list[str]:
    rule = re.compile(r"\d+xyz")
    return [item for item in input_arr if rule.search(item)]

# 测试调用
test_input = ['Carrot 22xyz', 'Mango', 'Banana 8xyz each', 'Kiwi']
print(filter_valid_strings(test_input))
# 运行输出:['Carrot 22xyz', 'Banana 8xyz each']
  • JavaScript 实现
function filterValidStrings(inputArr) {
    const rule = /\d+xyz/;
    return inputArr.filter(item => rule.test(item));
}

// 测试调用
const testInput = ['Carrot 22xyz', 'Mango', 'Banana 8xyz each', 'Kiwi'];
console.log(filterValidStrings(testInput));
// 运行输出:['Carrot 22xyz', 'Banana 8xyz each']
  • Java 实现
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;

public class StringFilter {
    private static final Pattern RULE = Pattern.compile("\\d+xyz");
    
    public static List<String> filterValidStrings(List<String> inputArr) {
        List<String> result = new ArrayList<>();
        for (String item : inputArr) {
            if (RULE.matcher(item).find()) {
                result.add(item);
            }
        }
        return result;
    }

    public static void main(String[] args) {
        List<String> testInput = Arrays.asList("Carrot 22xyz", "Mango", "Banana 8xyz each", "Kiwi");
        System.out.println(filterValidStrings(testInput));
        // 运行输出:[Carrot 22xyz, Banana 8xyz each]
    }
}

内容的提问来源于stack exchange,提问作者Nadhas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:15:02