微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式用html粗体标记替换星号字符

如何解决正则表达式用html粗体标记替换星号字符

| 有人有好的正则表达式可以做到这一点吗?例如:
This is *an* example
应该成为
This is <b>an</b> example
我需要在目标C中运行它,但是我可以自己完成一些工作。正则表达式给我带来麻烦(太生锈了……)。这是我到目前为止的内容
s/\\*([0-9a-zA-Z ])\\*/<b>$1<\\/b>/g
但这似乎不起作用。有任何想法吗?谢谢 :) 编辑:感谢您的回答:)如果有人想知道使用RegexKitLite在Objective-C中是什么样子:
Nsstring *textWithBoldTags = [inputText stringByReplacingOccurrencesOFregex:@\"\\\\*([0-9a-zA-Z ]+?)\\\\*\" withString:@\"<b>$1<\\\\/b>\"];
再次编辑:实际上,为了包含更多的粗体字符,我将其更改为:
Nsstring *textWithBoldTags = [inputText stringByReplacingOccurrencesOFregex:@\"\\\\*([^\\\\*]+?)\\\\*\" withString:@\"<b>$1<\\\\/b>\"];
    

解决方法

        您只在ѭ5之间匹配一个字符。尝试这个:
s/\\*([0-9a-zA-Z ]*?)\\*/<b>$1<\\/b>/g
或确保在5个字符之间至少有一个字符:
s/\\*([0-9a-zA-Z ]+?)\\*/<b>$1<\\/b>/g
    ,        您为什么不只做
\\*[^*]+?\\*
并用
<b>$1<\\/b>
代替呢?     ,        这个正则表达式适用于我(JavaScript)
x.match(/\\B\\*[^*]+\\*\\B/g)  
    ,        我写了一个稍微复杂些的版本,以确保星号始终在边界处,因此它忽略了悬挂的星形字符:
/\\*([^\\s][^\\*]+?[^\\s])\\*/
测试可使用但不能使用的短语:     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。