//查询出的数据进行过滤筛选
List<MedicineMonograph> channelAsc = list.stream()
.filter(category -> {
// 去除首尾的空格
String stratCode = category.getStratCode().trim();
// 提取括号内的内容(不含括号)
String insideBrackets = stratCode.replaceAll("[()()%\\d]", "");
// 检查括号内的内容是否以'W'开头(不区分大小写)
return insideBrackets.toUpperCase().startsWith(W);
})
.collect(Collectors.toList());
另一种方式SQl:
SELECT
*,
SUBSTRING( REPLACE ( REGEXP_REPLACE ( start_code, '^[0-9%]+', '' ), '(', '' ), 1, 1 ) AS first_char
FROM
drug_detail_info
WHERE
UPPER(
SUBSTRING( REPLACE ( REGEXP_REPLACE ( start_code, '^[0-9%]+', '' ), '(', '' ), 1, 1 )) = 'W'
ORDER BY
start_code ASC