如何编写仅移除开头带版本号字符串中版本的正则表达式
解决版本号字符串的正则匹配问题
问题分析
你之前用的正则^[^「]*会匹配行首到第一个「的所有内容,但普通字符串里没有「,所以会误删整行。核心是要只匹配以@开头的版本号前缀,不对普通字符串生效。
解决方案
基础版正则(适配所有@开头的版本号格式)
使用正则:^@[^\「]*,替换为空字符串即可。
^:锁定行起始位置@:明确匹配版本号的起始标识(所有带版本号的字符串均以@开头)[^\「]*:匹配任意数量非「的字符,直到遇到第一个「就停止,刚好覆盖版本号部分
精准版正则(严格匹配给定的版本号格式)
如果需要严格匹配@xxx_xx_xxxx这类格式,用:^@[a-zA-Z0-9]+_[A-Z0-9]+_[0-9]+
@[a-zA-Z0-9]+:匹配@开头的第一组字符(如@vS050、@k789)_[A-Z0-9]+:匹配下划线连接的第二组(如_A1、_S3)_[0-9]+:匹配下划线连接的数字结尾组(如_0002、_100)
这个版本能避免误匹配开头是@但不符合版本号格式的字符串。
效果验证
输入:
@vS050_A1_0002「Hello!」 Example2 string2
处理后输出:
「Hello!」 Example2 string2
内容的提问来源于stack exchange,提问作者V1n
相关产品推荐
相关产品推荐

