我有一个正则表达式从字符串中提取 $ parameter $ 等值。它适用于以下字符串:
你好$ name $。今天是$ dateOfWeek $,我们应该穿一些$衣服$。
这是我的正则表达式:
\$((?:\w*\s*)+)\(?(\d*)\)?\$
但如果字符串中有货币符号,则无法提取参数:
您好先生您的余额是$$ moneyValue。
如果我在上面的字符串上运行我的正则表达式,则不会提取参数 $ moneyValue $ 。提取的值为 $$ 。
如何更改正则表达式以提取 $$参数$ 等参数?参数可以包括空格和1个以上的单词。
答案 0 :(得分:1)
你的正则表达式需要“更贪婪”,我想你想要一个不同类型的捕获组
您可以尝试此\$([\w\s]+)\$?
我使用Javascript进行了测试,它适用于您的两种情况
对第一个字符的新限制不能是空白字符:
\$(\w+[\w\s]*)\$?
答案 1 :(得分:1)