我正在 Ruby 1.8.7 中进行一些文本处理,以支持我创建的一些自定义短代码。以下是我的简码的一些示例:
[CODE first-part]
[CODE first-part second-part]
我正在使用以下正则表达式来获取
text.gsub!( /\[CODE (\S+)\s?(\S?)\]/i, replacementText )
问题是这样的:正则表达式不适用于以下文本:
[CODE first-part][CODE first-part-again]
结果如下:
1. first-part][CODE
2. first-part-again
似乎这\s?
是正则表达式的问题部分,它正在搜索直到它到达最后一个空格,而不是第一个空格。当我将正则表达式更改为以下内容时:
\[CODE ([\w-]+)\s?(\S*)\]/i
它工作正常。我唯一关心的是\w
我\s
想确保\w
将匹配 URL 安全字符的所有内容。
我确信有一个完全有效的解释,但它让我望而却步。有任何想法吗?谢谢!