我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java正则表达式循环匹配字符串方式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java正则表达式循环匹配字符串方式

正则表达式循环匹配字符串

public static void main(String[] args) {
    
    String targetStr = "where 1=1 [and user_name like '%$user_name$%']  [and company_name like '%$company_name$%']";
    String[] split = targetStr.split("]");
    System.out.println("split==== " + split);
    String patternStr = "^[\\s\\S]{0,}\\[\\s{0,}and\\s{0,}[\\d\\W\\w]{1,}\\s{0,}[\\w]{1,}\\s{0,}\\W{0,}(\\$.+?\\$)\\W{0,}\\s{0,}\\s{0,}$";
 
    // 正则表达式
    Pattern pattern = Pattern.compile(patternStr);
    // 参数:要匹配的目标字符串
    Map<String,String> map = new HashMap<String,String>();
    map.put("$user_name$","user_value");
    map.put("$company_name$","company_value");
    map.put("$school_name$","$school_name$");
    
    for (int i = 0;i<=split.length-1;i++) {
        Matcher matcher = pattern.matcher(split[i]);
        System.out.println("split[i]==== " + split[i]);
        boolean b = matcher.find();
        if (b) {
            String key = matcher.group(1);
            for (Map.Entry<String,String> m : map.entrySet()){
                String mapKey = m.getKey();
                if (key.equalsIgnoreCase(mapKey)) {
                    System.out.println("key==== " + key );
                    
                    targetStr = targetStr.replace(key,m.getValue());
                   // System.out.println("targetStr after replace innner==== " + targetStr);
                }
            } 
        }
      //  System.out.println("targetStr after replace outer==== " + targetStr);
    }
    System.out.println("targetStr after replace final==== " + targetStr);
}

Java匹配正则表达式大全

java匹配字符串表达式在我们数据处理方面是及其重要的,现在就把我这几天数据处理比较常用的向大家介绍一下,常规的一些匹配方式就不介绍了,我们来学习一些特殊的

我们先举个例子来看看Java匹配正则表达式

Pattern pattern = Pattern.compile("采购(人名称|人单位|名称).*");
        Matcher matcher = pattern.matcher("采购名称乒位");
        String dateStr = null;
        if (matcher.find()) {
            dateStr = matcher.group(0);
            System.out.println(dateStr);
        }

运行结果如下:

匹配表达式的特殊情况

(1)匹配中文字符

Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5]");
        Matcher matcher = pattern.matcher("2322购购购购232323");
        String dateStr = null;
        if (matcher.find()) {
            dateStr = matcher.group(0);
            System.out.println(dateStr);
        }

运行结果如下:

(2)匹配从规定字符开始所有非换行字符

Pattern pattern = Pattern.compile("1.*");
        Matcher matcher = pattern.matcher("2312购购购购232323");
        String dateStr = null;
        if (matcher.find()) {
            dateStr = matcher.group(0);
            System.out.println(dateStr);
        }

运行结果如图:

(3)使用字符串数组匹配多个条件匹配字符串,这是我在实习进行处理数据的一个例子,希望有助于大家理解:

(4)对于字符串匹配查找多个符合条件的字符字串,我们用到group(),

  • group(num=0): 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。 
  • groups(): 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java正则表达式循环匹配字符串方式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java如何多字节正则表达式匹配的设置字符串和正则表达式

摘要:在Java中使用多字节正则表达式时,需要设置字符串和正则表达式:设置字符串:编码为多字节方案(如UTF-8)转义特殊字符设置正则表达式:使用(?u)启用unicode模式使用多字节边界标记(?u)使用字符类(p{L})匹配多字节字符使用转义序列(uD83DuDE0A)匹配特定字符使用非贪婪限定符(*?)限制匹配
Java如何多字节正则表达式匹配的设置字符串和正则表达式
2024-04-02

java正则表达式匹配字符串的方法是什么

在Java中,我们可以使用正则表达式来匹配字符串,可以使用以下步骤实现:1. 导入`java.util.regex`包,该包包含了用于操作正则表达式的类。2. 使用`Pattern.compile()`方法创建一个正则表达式的模式对象。例如
2023-08-09

Python正则表达式匹配字符串中的数字

这篇文章主要介绍了Python正则表达式匹配字符串中的数字,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下1.使用“\d+”匹配全数字
2023-06-01

Java如何多字节字符串的正则表达式匹配

本文详细介绍了如何在Java中使用正则表达式匹配多字节字符串。它涵盖了字符编码(UTF-16和UTF-8)、正则表达式匹配的注意事项、匹配示例以及最佳实践。Java中的多字节字符串匹配遵循Unicode规范和所使用的字符编码。正确理解这些概念对于确保程序精确匹配国际化文本数据至关重要。
Java如何多字节字符串的正则表达式匹配
2024-04-02

PHP如何多字节正则表达式匹配的设置字符串和正则表达式

在PHP中使用多字节正则表达式需要设置UTF-8编码字符串,使用标志u(Unicode支持)、i(不区分大小写)、m(多行匹配)和s(点号匹配换行符)。示例:mb_regex_encoding("UTF-8");$pattern="/^こんにちはs+.*$/u";PCRE支持Unicode属性、字符类、边界匹配、多行模式和非贪婪匹配。最佳实践包括设置UTF-8编码、使用Unicode支持标志、考虑使用Unicode属性和字符类,以及利用多行模式和非贪婪匹配。
PHP如何多字节正则表达式匹配的设置字符串和正则表达式
2024-04-02

java怎么用正则表达式匹配与提取字符串

本文小编为大家详细介绍“java怎么用正则表达式匹配与提取字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“java怎么用正则表达式匹配与提取字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先给出一个匹
2023-07-02

PHP如何多字节字符串的正则表达式匹配

PHP多字节字符串正则匹配指南在PHP中处理多字节字符串时,正则表达式应使用特殊的考虑因素:使用mb_ereg函数系列,并指定字符串编码。修改正则表达式模式:使用字符类、边界、量词和Unicode属性。考虑编码转换以确保匹配准确性。最佳实践包括:始终指定字符集编码。根据需要修改正则表达式模式。谨慎使用Unicode属性。
PHP如何多字节字符串的正则表达式匹配
2024-04-02

正则表达式怎么匹配多个字符

正则表达式可以使用特殊符号来匹配多个字符:1. 使用重复符号:可以使用`*`来匹配零个或多个字符,使用`+`来匹配一个或多个字符,使用`?`来匹配零个或一个字符。例如,正则表达式`ab*c`可以匹配字符串"ac"、"abc"、"abbc"等
2023-08-11

如何进行正则表达式匹配字符串的实现

如何进行正则表达式匹配字符串的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用正则表达式最常用的是考虑实现正则表达式匹配的判断,在实际工作中经常会遇到什么
2023-06-17

C#中如何使用正则表达式和字符串匹配

C#中如何使用正则表达式和字符串匹配正则表达式是一种强大的文本处理工具,它可以帮助我们有效地在字符串中进行模式匹配和提取。在C#中,通过使用System.Text.RegularExpressions命名空间下的Regex类,我们可以轻松地
2023-10-22

Java匹配正则表达式汇总

java匹配字符串表达式在我们数据处理方面是及其重要的,现在就把我这几天数据处理比较常用的向大家介绍一下,常规的一些匹配方式就不介绍了,我们来学习一些特殊的,感兴趣的朋友跟随小编一起看看吧
2023-03-24

java使用正则表达式匹配不包含某个规则的字符串

测试数据:例如上面这几条简单的日志条目,我们想实现两个目标:1、把8号的数据过滤掉;2、把那些不包含robots.txt字符串的条目给找出来(只要Url中包含robots.txt的都给过滤掉)。前瞻的语法是:(?!匹配模式)我们先来实现第一个目标——匹配不以特
java使用正则表达式匹配不包含某个规则的字符串
2014-06-16

正则表达式怎么匹配数字

这篇文章给大家分享的是有关正则表达式怎么匹配数字的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。高效正则表达式匹配数字实例:^[1-9]\d*$    //匹配正整数 ^-[1-9]\d*$   //匹配
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录