Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >单个Java正则表达式中的条件替换

单个Java正则表达式中的条件替换
EN

Stack Overflow用户
提问于 2010-12-13 14:32:00
回答 3查看 1.9K关注 0票数 1

我有一些字母数字字符形式的符号,后面跟着一个数字。数字是一个年份,我需要扩展到一个两位数的年份,9变成09,任何其他年份都变成前缀1。

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GCZ0 -> GCZ10
GCZ1 -> GCZ11
...
GCZ8 -> GCZ18
GCZ9 -> GCZ09

我正在使用([A-Z]+)([9+])([0-9]+),但我不确定如何让替换项有条件地包含正确的0或1前缀。

可以请一位regex大师告诉我正确的方向吗?由于不幸的原因,我需要在单个Java正则表达式匹配/替换中完成此操作。

谢谢,乔恩

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-22 11:05:43

经过进一步的研究,这里没有其他答案,我得出的结论是,这在单个Java regexp中是不可能的。

票数 0
EN

Stack Overflow用户

发布于 2010-12-13 14:40:22

由于不幸的原因,我需要在单个Java正则表达式匹配/替换中完成这项工作。

这样的解决方案是否存在似乎令人怀疑。传统的方法是使用Matcher.appendReplacementMatcher.appendTail来遍历源字符串,查找模式匹配,对它们执行任意逻辑,并替换适当的替换。

在Javascript中,您可以使用a function with String.replace()作为“智能替代”,而不是固定的字符串。

票数 6
EN

Stack Overflow用户

发布于 2010-12-13 14:42:13

编辑: Oups,未读取单个正则表达式替换条件 ...

好吧,别管我的建议...

下面是与您需要的完全匹配的正则表达式:

^A-Z{3}9$

不管怎样,我不明白你怎么能这么做...

我希望有人能比我帮得上忙。

结束编辑

使用StringBuffer,您可以插入一个字符:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
StringBuffer sb = new StringBuffer();
sb.append("GCZ0");
if(sb.charAt(3) == '9') sb.insert(2, "0");
else sb.insert(2, "1");

String result = sb.toString();

result中,您拥有所需的正确字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4429815

复制
相关文章
Linux对文件中的特殊字符进行替换(单个文件与多个文件替换)
https://stackoverflow.com/questions/5800035/how-to-replace-nul-in-vi
小徐
2019/08/05
6.2K0
Linux对文件中的特殊字符进行替换(单个文件与多个文件替换)
java之学习正则表达式的替换功能
结果示意图 A:正则表达式的替换功能 * String类的功能:public String replaceAll(String regex,String replacement) * B:案例演示 * 正则表达式的替换功能 * 一个字符串“wo65434ai5767fen98xiang7978ba” * 替换中间的数字返回全部的字母“woaifenxiangba” 案例代码、 package com.ifenx8.regex; public class Demo_ReplaceAll { /*
吾爱乐享
2018/07/13
5160
按条件替换-------replace_if
内置数据类型: #include<iostream> using namespace std; #include<vector> #include<algorithm> //函数对象 class GREATERthan { public: bool operator()(int val) { if (val > 5) return true; //如果这里的false不写,那么默认返回true return false; } }; //普通函数 void print(int
大忽悠爱学习
2021/03/02
1.1K0
按条件替换-------replace_if
Java正则表达式替换所有特殊字符
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145822.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/29
2.6K0
Java 通过正则表达式替换字符串
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145762.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/29
1.6K0
Java 通过正则表达式替换字符串
Java中替换字符串的方法
1. replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了就是字符串的意思)。
bisal
2021/10/15
5.7K0
Java中的宏变量,宏替换详解。
群友在微信群讨论的一个话题,有点意思,特拿出来分享一下。 输出true false 来看下面这段程序,和群友分享的大致一样。 public static void main(String[] args
Java技术栈
2018/03/30
3.8K0
Java中的宏变量,宏替换详解。
Java中的正则表达式
java中使用正则表达式的常用方式有两种:一是使用String类的matches方法;二是使用java.util.regex包下的类Pattern、Matcher。
青山师
2023/05/04
4930
Aptana与Editplus中查找并替换的正则表达式应用
复杂、多人协作的时候会使用Aptana,简单、单个作战的时候通常会选用Editplus,而在开发过程中或多或少需要用到正则表达式去替换一些字符串,掌握了方法,对于提升开发效率是很有用的。
meteoric
2018/11/15
1.2K0
Perl 正则表达式替换
文本处理中经常需要将字符串中的某些字符替换后再进行处理,以下是新发现的非常方便的方法,充分发挥了Perl正则表达式的威力。
全栈程序员站长
2022/08/23
2.9K0
宏替换、条件编译、头文件展开
4.链接:将所有的目标文件和依赖的库文件进行汇总,得到最终的可执行程序 以下开发工程中经常用到的部分预处理指令:
海盗船长
2020/08/27
2.3K0
正则表达式查找替换
thisisbefore(self ,func) 替换成thisisafter(func,self).
立羽
2023/08/24
1930
python通过正则表达式分析网页中的图片并进行替换
这段代码分析网页中的所有图片表单<img>,分析后为其前后添加相应的修饰标签,并添加到图片的超级链接。
大师级码师
2021/11/03
6060
php中的<?= ?>替换<?php echo ?>
首先修改PHP.ini文件. 如下: 1. 将short_open_tag = Off 改成On 开启以后可以使用PHP的短标签:<? ?> <?= 同时,只有开启这个才可以使用 <?= 以代替 <
全栈程序员站长
2021/12/23
2.9K0
php中的<?= ?>替换<?php echo ?>
正则表达式检索与替换
re.sub用于替换字符串中的匹配项 re.sub(pattern, repl, string, count=0) # 代码 import re phone = "2004-959-559 # 这是一个电话号码" # 删除注释 num = re.sub(r'#.*$', "", phone) print("电话号码:", num) # 移除非数字的内容 num = re.sub(r'\D', "", phone) print("电话号码:", num) # 将匹配的数字乘以2 def doubl
benym
2022/07/14
4720
Java中的正则表达式详解
为让大家对正则表达式底层实现有一个直观的映象,给大家举个实例 给你一段字符串(文本), 请找出所有四个数字连在一起的子串, 比如: 应该找到1998 1999 3443 9889 ===> 分析底层实现
timerring
2023/05/24
9490
Java中的正则表达式详解
JAVA中替换字符的方法replace和replaceAll 区别
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32534855/article/details/90939899
DencyCheng
2019/06/14
3.2K0
点击加载更多

相似问题

用和条件替换Java正则表达式

30

替换正则表达式中的单个项

13

用java中的多态替换条件

50

perl正则表达式替换中的条件

21

nodejs中的条件正则表达式替换

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文