我有一个示例字符串。
This should be **bold**, *indented* or ***bold and indented***.
使用3个正则表达式解析字符串,这个正则表达式一个接一个地运行以获得以下结果:
This should be <b>bold</b>, <i>indented</i> or <b><i>bold and indented</i></b>.
这很简单,工作正常。但是,我想节省几行(如果可能,更漂亮,更有效,那么为什么不呢?),并合并它们。在单个正则表达式语句中进行所有替换。是否可以提高效率?或者我应该保留原样? (即使我应该,我希望看到一个可能的解决方案?)
我的匹配陈述:
\*\*\*(.+?)\*\*\*
- &gt; <b><i>$1</b></i>
\*\*(.+?)\*\*
- &gt; <b>$1</b>
\*(.+?)\*
- &gt; <i>$1</i>
答案 0 :(得分:2)
老实说,将它们保留为3个单独的正则表达式几乎可以肯定......
当涉及正则表达式时,更少的行并不总是更好,尤其。
另外,你实际上只需要2个正则表达式 - 粗体和斜体。只需要先运行粗体:
***foo***
大胆的正则表达式后,成为......
*<b>foo</b>*
然后斜体正则表达式使...
<i><b>foo</b></i>
哪个是正确的输出。 (首先运行粗体的原因是因为斜体将***
与<i>*</i>
匹配,这是错误的。)