Regular Expression 正则表达式-2 (Java)

RegEx报错“Invalid regular expression“的转义字符处理 在使用正则表达式时,Invalid regular expression错误常由转义字符处理不当引起。本文分析了该问题的成因,并提供了解决方案。主要问题包括双重转义和语言特定的转义规则。解决方案包括使用原始字符串标记、显式双重转义以及利用特殊字符转义表。文章还提供了实战案例和跨语言转义对照表,建议优先使用原始字符串、添加注释说明转义逻辑、利用测试工具和转义函数。通过这些方法,用户可以系统性解决正则表达式的转义相关错误。 阅读详情

又用Java实现了一个,发现Java的正则表达式略有不同,而且也感觉到了Java的读写文件很不雅观。

/*
* Created on 2004-10-1
*/
import java.util.regex.*;
import java.io.*;

/**
* @author dancefire
*/
public class DataFilter {

    
public static void main(String[] args) {
        if(
args.length < 2)
        {
            
System.err.println("Please enter 2 filenames(e.g. In.txt Out.txt)");
            return;
        }
        
String strIn = null, strOut = null;
        
        
//    Get string from a file
        
strIn = readFile(args[0]);
        
//    Process
        
strOut = filter(strIn);
        
//    Store Result into a file
        
writeFile(args[1], strOut);
        
    }
    
private static void writeFile(String filename, String data)
    {
        
BufferedWriter wr = null;
        
try{
            
wr = new BufferedWriter( new FileWriter(filename));
            
wr.write(data);
        }
catch( Exception e )
        {
            
e.printStackTrace();
        }
finally{
            
try{
                if(
wr != null )
                    
wr.close();
            }
catch( Exception e ){
                
e.printStackTrace();
            }
        }
        return;
    }
    
private static String readFile(String filename)
    {
        
String strRet = null;
        
BufferedReader rd = null;
        
try{
            
rd = new BufferedReader( new FileReader(filename));
            
String line = null;
            
StringBuffer sb = new StringBuffer();
            while( (
line=rd.readLine()) != null )
            {
                
sb.append(line);
            }
            
strRet = sb.toString();            
        }
catch( Exception e )
        {
            
e.printStackTrace();
        }
finally{
            
try{
                if(
rd != null )
                    
rd.close();
            }
catch( Exception e ){
                
e.printStackTrace();
            }
        }
        return
strRet;
    }
    
private static String filter(String input)
    {
        
Pattern p = Pattern.compile("/"(//w+):(//w+)%(//w+)/"");
        
Matcher m = p.matcher(input);
        
StringBuffer sb = new StringBuffer();
        while(
m.find())
        {
            
sb.append( m.group(1) + ":" + m.group(2) + "*" + m.group(3) + "," + System.getProperty("line.separator") );
        }
        return
sb.toString();
    }
}

java正则表达式: regular expression(一) 本文实例源码 博文链接:https://gmf.iteye.com/blog/89077 立即下载

相关推荐

ROS 2 Humble + Gazebo Fortress 搭建AGV小车仿真环境(保姆级避坑指南)

本文详细介绍了如何使用ROS 2 Humble和Gazebo Fortress搭建AGV小车仿真环境,包括环境准备、URDF模型构建、ROS 2控制集成、传感器配置等关键步骤。特别针对Gazebo Fortress版本差异提供了保姆级避坑指南,帮助开发者快速解决常见问题并优化性能。

weixin_29044157的博客 200

java正则表达式; regular expression

 Java 101 正则表达式简化模式匹配的代码 探索在文本处理场合下涉及模式匹配中正则表达式的优雅之处。 概要文本处理经常涉及的根据一个pattern的匹配。尽管java的character和assorted 的String类提供了low-level的pattern-matching支持,这种支持一般带来了复杂的代码。为了帮助你书写简单的pattern-matching代码,

龙的天空 2025

西门子PLC作为TCP客户端通信:TSEND_C/TRCV_C指令实战与状态机设计

在工业自动化与物联网系统中,TCP/IP通信是实现设备间数据交换的基础协议,其核心在于建立可靠的点对点连接与数据流传输。其工作原理基于客户端-服务器模型,通过三次握手建立连接,确保数据包的顺序与完整性。这项技术的工程价值在于打破了传统工控设备被动响应的局限,为实时数据主动上报、边缘计算集成提供了通用且灵活的解决方案。在工业物联网、设备远程监控、生产数据实时采集等场景中,TCP客户端模式使得PLC能够主动将产线状态、报警信息等关键数据推送至服务器或数据库,实现更及时的数据交互。本文聚焦于西门子S7-1200/

weixin_29194255的博客 361

正则表达式 regular expression

1、正则表达式的语法模块:普通字符、特殊字符、标准字符集、自定义字符集、量词表达式、零宽表达式; 2、常用几种正则表达式; 3、java中使用正则表达式。

lintiddler的博客 2399

别再只改config了!YOLO/RT-DETR多通道输入实战:数据集结构、多卡训练与参数优先级避坑指南

本文详细解析了YOLO/RT-DETR模型在多通道输入(如8通道多光谱图像)中的实战应用,涵盖数据集结构优化、数据加载器改造、模型参数调优及多卡训练配置。针对常见的多通道输入报错问题,提供了系统的解决方案和性能优化技巧,帮助开发者高效实现非标准数据格式的适配与训练。

weixin_30955617的博客 397

876-基于STM32的毫米波雷达智能睡眠监测系统

基于STM32的毫米波雷达智能睡眠监测系统通过非接触式毫米波雷达检测人体呼吸频率和体动次数,结合WIFI数据传输和OLED显示,实现睡眠质量分析与远程监控。系统核心功能包括生理参数采集、阈值设置、数据可视化及远程交互。

m0_50083169的博客 1543

正则表达式基础 Regular Expression

正则表达式基础 Regular Expression 正则表达式简介   n  为什么需要正则表达式? q  文本的复杂处理。 n  正则表达式的优势和用途? q  一种强大而灵活的文本处理工具; q  提供了一种紧凑的、动态的方式,能够以一种完全通用的方式来解决各种字符串处理(例如:验证、查找、替换等)问题; q  大部分语言[d1] 、数据库都支持正则表达式。 n  正则表达

daiyy0921的专栏 4655

实战拆解:RAG vs Agent在金融风控中的性能对比

2024年上半年我帮某华东地区城商行做零售交易反欺诈系统升级时,技术团队曾发生过一次激烈争论:一派认为应该优先上RAG(检索增强生成)方案,成本低、落地快、合规性好;另一派坚持要上Agent(智能体)方案,推理能力强、能应对复杂新型欺诈。最终我们做了完整的AB测试,结论是两者没有绝对的优劣,只有场景适配的差异:RAG适合高并发、低时延的实时风控场景,Agent适合低并发、高准确率要求的事后核查/大额审批场景,两者结合的 hybrid 方案能覆盖95%以上的风控需求。本文我会结合真实项目的测试数据,从核心概念

AI天才研究院 251

正则表达式 Regular Expression

重新整理记录一下正则规则 定义 Regular Expression - 正规的/有规律的表达式,是计算机科学的一个概念。使用一个字符串来描述、匹配一系列符合某个句法规则的字符串 最初这个概念是由Unix中的工具软件如sed和grep普及开的,通常简写为regex 几乎所有操作系统以及编程语言中都有正则表达式的应用 引擎 正则引擎主要分为两大类: DFA NFA P

「有且仅有」 2346

详解Linux下使用vscode编译运行和调试C/C++

本教程将具体详解使用Visual Studio Code在Linux环境下使用C/C++方法。 GCC C++ 编译器 (g++) 和 GDB 调试器的方法。 GCC是GNU 编译器集合; GDB 是 GNU 调试器。 1.先决条件 安装Visual Studio Code. 安装C++拓展插件。点击在vscode界面最左侧的Extensions图标(打开快捷键:ctrl+shift+X),搜索“C/C++”,点击进行安装。 确保已安装gcc. 一般ubuntu系统会预装gcc.在终端窗口中输入如下命令

休的博客 6241

2、TrustZone(内含链接)——长期学习内容

ARM系列学习路径整理,希望对大家有用。

HoneyIC的博客 232

正则表达式Regular expression

Ⅰ. 简介 正则表达式(regular expression)是一种字符串匹配模式或者规则,它可以用来检索、替换那些符合特定规则的文本。正则表达式几乎适用于所有编程语言,无论是前端语言 JavaScript,还是诸如许多后端语言,比如 Python、Java、C# 等,这些语言都提供了相应的函数、模块来支持正则表达式,比如 Python 的 re 模块就提供了正则表达式的常用方法。 Ⅱ. 正则表达式语法 1) 元字符 正则表达式元字符 元字符 匹配内容 . 匹配除换行符以外的任

noobiee的博客 1247

ZW3D 二次开发-制作插件

1.Windows 7 SP1 或 Windows 10 或 Windows 11(推荐 Windows 11)2.Visual studio 2017-2022 (或 C/C++的任何其他集成开发环境)(推荐 Visual studio 2022)3.ZW3D 2023 或以上版本(建议使用与 ZW3D 一致的 API 的版本)4.Qt5.9.7(for Windows)博主学习使用环境的是:Windows 11 Version 24H2 + Visual studio 2022 + Qt5.9.7(fo

fhqiwmc的博客 812

Java Regular Expression Tutorial

This tutorial is aimed to help you mastering java regular expression and for me to come back at regular interval to refresh my regular expressions learning. What Are Regular Expressions? A regular

Roy Sun 1563

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

10. Regular Expression Matching 正则表达式匹配

题目:Regular Expression Matching 正则表达式匹配 难度:困难 Given an input string (s) and a pattern (p), implement regular expression matching with support for'.'and'*'. '.' Matches any single character. '*' ...

qq_21963133的博客 550

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java 正则表达式 -Regular Expression

  正则表达式(Regular Expression),可以说就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。正则表达式定义了字符串的模式,可以用来搜索、编辑或处理文本,不仅限于某一种语言(Perl、PHP、Python、JavaScript和JScript),但是在每种语言中有细微的差别。   使用java正则,借助java.util.regex包,主要包括以下三个类:P...

acfyrp8584的博客 263

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Java 正则表达式(Regular Expression)

<br />如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。 许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本, 一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理的Ja

fhy_2008的专栏 1000

正则表达式(Regular Expression)详解

正则表达式(简称"regex"或"regexp")是一种强大的文本模式匹配工具,它使用特定语法来描述、匹配和操作字符串。

thing 4733

Java Regular Expression

1, Pattern p = Pattern.compile("<.*?>(.*)</.*?>", Pattern.CASE_INSENSITIVE | Pattern.DOTALL); Matcher matcher = p.matcher(str); boolean r = matcher.matches(); 2, Pattern pattern...

qq_25527791的博客 277

Regular Expression Matching in Java

什么是正则表达式? 正则表达式是一种可以匹配各种文本字符串的模式,用于验证。 何时何地使用正则表达式? 它可以在支持或具有正则表达式类的编程语言中使用,如在内置或它支持第三方正则表达式库。 正则表达式可用于有效地处理不同类型的数据,而无需使用 if 和 case 条件增加代码。使用单行正则表达式检查可以省略许多 if 条件。 正则表达的好处: a)#行代码可以减少。 b) 速度编码。 c) 易于维...

ii00的博客 327

正则表达式详解(regular expression)

正则表达式是一种用于匹配字符串的模式,广泛用于搜索、替换、验证等操作。:邮箱、手机号、IP 地址等。

m0_74051652的博客 858

Thinking in java-36 Regular expression正则表达式

1. 什么是正则表达式?部分内容整理自此,了解详细内容可以查看此处。 正则表达式定义了一种字符串查找的模式。 这种字符串search pattern可以是最简单的单字符、某个固定的字符串或者是某种特殊模式的复杂的表达式。 所以我们可以这样说:如果一个字符串符合了regular expression的模式,那么他就和我所要找的内容相匹配。(If a string has these things

toseektruth的博客 598

正则表达式(Regular Expression,简称 Regex)

通过使用。

sunny_LI 1236

Day011--java中的正则表达式(Regular Expression)

正则表达式--处理文本的利器。元字符的使用,反向引用,电子邮箱是否合法验证。

干就完了 1525

Wildcard Matching & Regular Expression Matching & KMP

觉得Wildcard Matching & Regular Expression Matching & KMP都是字符串匹配问题,所以想把它们放一起 方法有动态规划、回溯、有限自动机 一、Wildcard Matching: Implement wildcard pattern matching with support for '?' and '*'. '?' Matches

沉浸如海 631
上一篇: Regular Expression 正则表达式-1 (C#)
下一篇: Regular Expression 正则表达式-3 (C++)
DanceFire
博客等级 码龄26年 91粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值