你有边界匹配器“\G”的任何有用的例子吗?请给我一些现实世界的例子。 Java 源代码值得赞赏。从“掌握正则表达式。Jeffrey E. F. Friedl”中,我得到了一个解析 HTML 的有用示例,但我不确定如何翻译为 Java。
这是一个基于正则表达式的解决方案,用于引入千位分隔符:
String separateThousands(String s) {
return s.replaceAll(
"(?<=\\G\\d{3})(?=\\d)" + "|" + "(?<=^-?\\d{1,3})(?=(?:\\d{3})+(?!\\d))",
","
);
}
这将转变"-1234567890.1234567890"
to "-1,234,567,890.1234567890"
.
See also
-
codingBat separateThousands using regex (and unit testing how-to)
- 解释它是如何工作的,以及也使用的替代正则表达式
\G
.
这个比较抽象,但是你可以使用\G
和固定长度的lookbehindsplit
将长字符串分成固定宽度的块:
String longline = "abcdefghijklmnopqrstuvwxyz";
for (String line : longline.split("(?<=\\G.{6})")) {
System.out.println(line);
}
/* prints:
abcdef
ghijkl
mnopqr
stuvwx
yz
*/
您不需要为此使用正则表达式,但我确信存在“现实生活”场景,该场景是该技术的变体。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)