向所有在这里贡献自己的时间和脑力的人致敬。我正在使用缅甸语文本,资源很少。
为了在Unicode中的Unicode文本列中使换行工作正常,我想编译一个正则表达式,它将在以下上下文中插入零宽度空间(ZWSP)[u \ 200B]:
在unicode字符运行的任何示例之前立即插入ZWSP [\ u1000- \ u1021]
除非
或
有人可以帮忙吗?我将在UltraEdit中使用大量文本进行查找/替换。
答案 0 :(得分:0)
Perl正则表达式搜索字符串
([^\x{1000}-\x{1021}\x{1039}])([\x{1000}-\x{1021}])(?!\x{103A})
与替换字符串一起使用
\1\x{200B}\2
符合您的所有要求。
搜索字符串的说明:
([^\x{1000}-\x{1021}\x{1039}])
匹配任何不具有十六进制范围1000到1021的代码值的字符,并且不是具有十六进制代码值1039的字符,并且标记此字符以通过替换中的表达式\1
进行反向引用必须保留此字符的字符串。
([\x{1000}-\x{1021}])
匹配代码值在0x1000到0x1021范围内的任何字符,并将此字符标记为替换字符串中的表达式\2
的后引用,因为此字符也必须保留。
(?!\x{103A})
是一个负前瞻表达式,用于检查下一个字符是否没有十六进制代码值103A。
替换字符串的说明:
\1
引用搜索字符串中第一个标记组找到的字符。
\x{200B}
指定要插入的零宽度空间。
\2
引用搜索字符串中第二个标记组找到的字符。