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