找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 424|回复: 0

[求助] 中文标点符号正则式怎么匹配

[复制链接]
  • 打卡等级:初涉江湖

4

主题

7

回帖

15

积分

学前班

鲜花
0
猫粮
34
发表于 2024-6-27 21:07:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×


这下面的只支持英文标点符号,请问中文的要怎么写。如果自己定义一个[set]
语法:字符类

字符类用于表示一个字符集合。

  • .(一个点) : 可表示任何字符。
  • %a : 表示任何字母。
  • %c : 表示任何控制字符。
  • %d : 表示任何数字。
  • %g : 表示任何除空白符外的可打印字符。
  • %l : 表示所有小写字母。
  • %p : 表示所有标点符号。
  • %s : 表示所有空白字符。
  • %u : 表示所有大写字母。
  • %w : 表示所有字母及数字。
  • %x : 表示所有 16 进制数字符号。
  • %z : 表示 \0 的字符。
  • %% : 表示字符 %。 这是对魔法字符转义的标准方法。 所有非字母或数字的字符 (包括所有标点,也包括非魔法字符) 都可以用前置一个 % 放在模式串中表示自身。
  • [set] : 表示 set 中所有字符的联合。 可以以 - 连接,升序书写范围两端的字符来表示一个范围的字符集。 其它出现在 set 中的字符则代表它们自己。 例如,[%w\_] (或 [\_%w]) 表示所有的字母数字加下划线), [0-7] 表示 8 进制数字, [0-7%l%-] 表示 8 进制数字加小写字母与 - 字符。
  • [^set] : 表示 set 的补集,也就是不包含 set , 其中 set 如上面的解释。

所有单个字母表示的类别(%a,%c,等), 若将其字母改为大写,均表示对应的补集。 例如,%S 表示所有非空格的字符。

语法:模式条目
  • 单个字符类匹配该类别中任意单个字符
  • 单个字符类跟一个 *, 将匹配零或多个该类的字符。 这个条目总是匹配尽可能长的串
  • 单个字符类跟一个 +, 将匹配一或更多个该类的字符。 这个条目总是匹配尽可能长的串;
  • 单个字符类跟一个 -, 将匹配零或更多个该类的字符。 和 * 不同, 这个条目总是匹配尽可能短的串;
  • 单个字符类跟一个 ?, 将匹配零或一个该类的字符。 只要有可能,它会匹配一个;
  • %n, 这里的 n 可以从 1 到 9; 这个条目匹配一个等于 n 号捕获物(后面有描述)的子串。
  • %bxy, 这里的 xy 是两个明确的字符; 这个条目匹配以 x 开始 y 结束, 且其中 xy 保持 平衡 的字符串。 意思是,如果从左到右读这个字符串,对每次读到一个 x 就 +1 ,读到一个 y 就 -1, 最终结束处的那个 y 是第一个记数到 0 的 y。 举个例子,条目 %b() 可以匹配到括号平衡的表达式。
  • %f[set], 指 边境模式; 这个条目会匹配到一个位于 set 内某个字符之前的一个空串, 且这个位置的前一个字符不属于 set 。 集合 set 的含义如前面所述。 匹配出的那个空串之开始和结束点的计算就看成该处有个字符 ‘\0’ 一样。

楼主热帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-11-21 22:23

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表