扫码关注官方订阅号
>([\\u4e00-\\u9fa5])[^\\u4e00-\\u9fa5]*?([\\u4e00-\\u9fa5]+?)(\\*)?<", ">$1$2<
([\\s\\S]+?)[|]
这个正则表达式是什么意思? 求正解 谢谢?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
[\\u4e00-\\u9fa5]匹配一个中文字符[^\\u4e00-\\u9fa5]*?匹配非中文字符,非贪婪模式?,可以先跳过的意思(\\*)?这里要匹配的是星号,?表示要么匹配一次星号,要么不匹配$1$2是引用前面表达式的意思,$1表示引用第一个分组,即([\\u4e00-\\u9fa5]),$2表示引用第二个分组,即([\\u4e00-\\u9fa5]+?) (真是奇葩) 引用的意思就是在这个位置要写的表达式和前面的一样。
[\\u4e00-\\u9fa5]
[^\\u4e00-\\u9fa5]*?
?
(\\*)?
$1$2
$1
([\\u4e00-\\u9fa5])
$2
([\\u4e00-\\u9fa5]+?)
准备代码测试的,发现题主的第一个正则是>([\\u4e00-\\u9fa5])[^\\u4e00-\\u9fa5]*?([\\u4e00-\\u9fa5]+?)(\\*)?<这部分, 后面的我猜应该是replace的内容。
>([\\u4e00-\\u9fa5])[^\\u4e00-\\u9fa5]*?([\\u4e00-\\u9fa5]+?)(\\*)?<
String regex = ">([\\u4e00-\\u9fa5])[^\\u4e00-\\u9fa5]*?([\\u4e00-\\u9fa5]+?)(\\*)?<"; Pattern pattern = Pattern.compile(regex); String test1 = ">中english文<"; String test2 = ">中english###更长的中文<"; String test1Ret = pattern.matcher(test1).replaceAll(">$1$2<"); String test2Ret = pattern.matcher(test2).replaceAll(">$1$2<"); System.out.println(test1Ret); //>中文< System.out.println(test2Ret); //>中更长的中文<
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
[\\u4e00-\\u9fa5]匹配一个中文字符[^\\u4e00-\\u9fa5]*?匹配非中文字符,非贪婪模式?,可以先跳过的意思(\\*)?这里要匹配的是星号,?表示要么匹配一次星号,要么不匹配$1$2是引用前面表达式的意思,$1表示引用第一个分组,即([\\u4e00-\\u9fa5]),$2表示引用第二个分组,即([\\u4e00-\\u9fa5]+?)(真是奇葩)
引用的意思就是在这个位置要写的表达式和前面的一样。
准备代码测试的,发现题主的第一个正则是
>([\\u4e00-\\u9fa5])[^\\u4e00-\\u9fa5]*?([\\u4e00-\\u9fa5]+?)(\\*)?<这部分,后面的我猜应该是replace的内容。