有没有人有一个很好的正则表达式来做到这一点?例如:
This is *an* example
应该成为
This is <b>an</b> example
我需要在Objective C中运行它,但我可能会自己解决这个问题。这是正在给我带来麻烦的正则表达式(如此生锈......)。这是我到目前为止所做的:
s/\*([0-9a-zA-Z ])\*/<b>$1<\/b>/g
但它似乎没有起作用。有任何想法吗?谢谢:))
编辑:感谢您的回答:)如果有人想知道Objective-C中的内容,使用RegexKitLite:
NSString *textWithBoldTags = [inputText stringByReplacingOccurrencesOfRegex:@"\\*([0-9a-zA-Z ]+?)\\*" withString:@"<b>$1<\\/b>"];
再次编辑:实际上,为了包含更多用于粗体的字符,我将其更改为:
NSString *textWithBoldTags = [inputText stringByReplacingOccurrencesOfRegex:@"\\*([^\\*]+?)\\*" withString:@"<b>$1<\\/b>"];
答案 0 :(得分:8)
为什么不执行\*[^*]+?\*
并将其替换为<b>$1<\/b>
?
答案 1 :(得分:5)
您只匹配*
之间的一个字符。试试这个:
s/\*([0-9a-zA-Z ]*?)\*/<b>$1<\/b>/g
或确保*
s:
s/\*([0-9a-zA-Z ]+?)\*/<b>$1<\/b>/g
答案 2 :(得分:1)
这一个正则表达式适用于我(JavaScript)
x.match(/\B\*[^*]+\*\B/g)
答案 3 :(得分:0)