【发布时间】:2011-01-27 14:01:52
【问题描述】:
您将如何使用正则表达式编写函数来执行以下操作:
- 用大写字母替换小写字母“a”,反之亦然
- 如果易于扩展,请对所有字母执行此操作
- 如果单词由空格分隔,
>和<是某些单词上的特殊标记,请将>word替换为word<,反之亦然。- 如果有帮助,您可以限制输入,以便所有单词都必须以一种或另一种方式标记。
- 将后增量 (
i++;) 替换为前增量 (++i;),反之亦然。变量名是[a-z]+。现在可以假设输入仅限于这些语句。奖励:也做减量。
也对其他口味的解决方案感兴趣。
注意:这不是家庭作业问题。另请参阅我之前对正则表达式的探索:
- Regex split into overlapping strings(艾伦摩尔的回答特别有启发性)
- Can you use zero-width matching regex in String split?(我的解决方案利用了一个已知的 Java 正则表达式错误,涉及非明显长度后视!)
【问题讨论】:
-
这真的适合使用正则表达式吗?
-
我不知道。我正在尝试探索它的用途和用途。
-
第一个要求不是正则表达式能做到的。
-
好的,我将第一个问题简化为一个字母。精神是一样的。
-
@polygenelubricants,冒着听起来像个书呆子的风险,不,精神不一样。你首先说用它的大写或小写等效替换任意字母(正则表达式不可能)。但是,可以替换单个(特定)字母。它们是两种不同的东西。