【发布时间】:2010-08-16 16:03:04
【问题描述】:
有没有办法打印出满足给定正则表达式的每个字符?
例如,我可以打印所有匹配正则表达式的字符吗,比如说,在 Javascript 中:
[A-Za-z_-]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\u10000-\uEFFFF]
示例取自Turtle specification。
编辑:Toby 和 Peter Boughton 提出的解决方案的 JavaScript 实现。
var out = "",
str = "";
for (var i = 32; i < 983040; i++) {
str = String.fromCharCode(i);
if (str.match(/[A-Za-z_-]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\u10000-\uEFFFF]/)) {
out += str;
}
}
console.log(out);
【问题讨论】:
-
之前在 SO 上已经多次询问过这个问题 - 只能在重复字段中提供一个链接,但这里还有一些:stackoverflow.com/questions/2905229/…stackoverflow.com/questions/205411/…stackoverflow.com/questions/748253/…stackoverflow.com/questions/1015449/…
-
您说得对,这些问题的核心是相似的,但是在您提供的链接中,问题是生成与给定正则表达式匹配的随机字符串。我只想获取与表达式匹配的每个可能的 character。
-
嗯,没看出这是一个单字符的正则表达式。有点奇怪,但托比的建议会奏效。