我需要找出句子中的所有单词,这些单词介于$和这样的空格之间 这是$ abc $ cde any $ ety。
结果应该是abc,cde和ety。
我试过这个
'(?<=$$)(.*)(?=)'
但它显示了一些错误。这个或任何新的建议有什么问题?
答案 0 :(得分:1)
你可以试试这个:
\$(\w+)
作为捕捉小组,你会得到每个单词。
\w
将匹配a-Z,0-9和_,如果您只想匹配字母,例如,您可以更改为:\$([a-zA-Z]+)
答案 1 :(得分:0)
从问题中假设,每个单词(单词仅包含字符A-Za-z)必须以$
开头,并在结尾处有空格。
以下正则表达式将匹配这些单词 - \$([A-Za-z])+
(最后有一个空格,由于此处的格式化而很难看到)。如果有多个空格,则可以在正则表达式的末尾使用+
(+之前的空格,由于格式化而难以再次查看)。
然后你可以提取第一个匹配组(即$1
)作为你的匹配单词,你需要在一个循环中完成这个,直到没有你可以提取的匹配。这就像 -
while ($x =~ /\$([A-Za-z])+ /g) {
// $1 is your match
}
如果您的字词不仅仅包含字符,那么您可以使用\w
提及的pcalcao
,其中包括0-9
和_
答案 2 :(得分:0)
试试这个RegEx:
(?<=\$)([^\s]*)(?=\s)