正则中文标点符号打包出错

本文探讨了如何在正则表达式中确保大写字母遵循顿号分隔的规则,作者分享了从本地验证到部署测试环境的迁移技巧,重点在于解决字符转译问题。

最近遇到一个问题,正则校验中要求校验成大写字母,并且大写字母之间要用顿号分割,

一开始我写的这种:/^([A-Z]{1})(\、([A-Z]{1}))*$/

发现本地校验没问题,打包部署到测试环境就出问题,后来发现要转译才行,于是改成

/^([A-Z]{1})(\u3001([A-Z]{1}))*$/

就可以了。

 

### Java 正则表达式匹配标点符号 为了在Java中使用正则表达式匹配包含标点符号的字符串,可以按照如下方式构建和应用正则表达式。 #### 构建正则表达式 要创建一个能识别并匹配标点符号正则表达式模式,通常会利用预定义好的字符集。对于大多数常见标点符号而言,`\p{Punct}` 是一种有效的方式[^4]。此属性涵盖了广泛使用的ASCII标点符号集合,如句号、逗号、问号等。 #### 编写代码实例 下面是一个简单的例子,展示了如何读取一段文本,并从中提取出所有的标点符号: ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public class PunctuationExtractor { public static void main(String[] args) { String inputText = "Hello, world! How are you?"; // 定义用于匹配任意标点符号正则表达式 Pattern pattern = Pattern.compile("\\p{Punct}"); Matcher matcher = pattern.matcher(inputText); System.out.println("Found punctuation marks:"); while (matcher.find()) { System.out.print(matcher.group()); } } } ``` 这段代码首先导入必要的`Pattern` 和 `Matcher` 类,之后定义了一个输入字符串作为测试对象。接着编译了用来寻找所有标点符号正则表达式,并通过调用`find()` 方法遍历整个字符串中的每一个符合条件的位置,最终打印出来找到的结果[^1]。 #### 使用场景扩展 如果目标仅仅是找出单个标点符号而是想要处理更复杂的结构——比如分割由多个连续标点符号分隔开来的词语,则可以根据需求调整正则表达式的逻辑。例如,在每个空格或标点符号处切割字符串可采用如下形式的正则表达式:`[\\s\\p{Punct}]`[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值