|
|
1
154
Perl 5.10及更高版本支持辅助的垂直和水平字符类,
最干净的解决方案是使用
水平空白
字符类
这个
垂直空间
模式
有七个垂直空格字符匹配
所有空白字符都是
垂直的
或
水平的
没有重叠,但它们不是适当的子集,因为
|
|
|
2
300
使用双负片:
也就是说,不是空白(大写的S补码),也不是回车,也不是换行。分配外部非(
即
,补充
不必相信我的话:
输出: " " => match "\f" => match "\t" => match "\r" => no match "\n" => no match 注意排除垂直标签,但这是 addressed in v5.18 . 在过于严厉地反对之前,Perl文档使用相同的技术。中的脚注 âWhitespaceâ section of perlrecharclass 读数
这个 same section of perlrecharclass 同时也提出了其他不会冒犯语言教师反对双重否定的方法。
外部区域设置和Unicode规则,或者当
如果文本是Unicode,请使用与下面的子代码类似的代码从中的表构造模式。 the aforementioned documentation section .
其他应用
双重否定技巧对于匹配字母字符也很方便。记住
但是双重否定字符类可以尊重区域设置:
用这种方式表达单词字符而不是数字或下划线有点不透明。posix字符类更直接地传达意图。
或使用Unicode属性作为 szbalint 建议
|
|
|
3
42
一个变异 Gregâs answer 包括回车:
这个regex比
|
|
|
4
11
你要找的是POSIX
在Java中(不要忘记启用)
与同类产品相比
但问题是,即使坚持使用Unicode也不能100%解决这个问题。考虑以下字符,这些字符在Unicode中不被视为空格:
前面提到的蒙古语元音分隔符不包括在内,这可能是一个很好的原因。它与200c和200d一起出现在words(afaik)中,因此打破了所有其他空白区都遵守的基本规则:您可以用它标记化。它们更像修饰符。然而,
在Java中:
|
|
5
8
|
|
6
-3
|
|
|
Manny · 如何比较Perl中的字符串? 3 年前 |
|
|
BioRod · 我不能用Perl打印键和值 3 年前 |
|
|
user17227456 · Perl CLI代码无法追加字符串行 3 年前 |
|
|
LearnToBeBetter · 读取文件,搜索字符串,打印字符串 3 年前 |
|
KJ7LNW · 一些波斯语文本的宽字符印刷,但其他文本则没有 3 年前 |
|
|
con · 如何搜索大型数据结构并返回一系列给出特定值的键/数组? 3 年前 |
|
|
Pranay Nanda · 使用regex解析许可证文件 7 年前 |