如何使用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
相关产品推荐
相关产品推荐

