匹配单词但不匹配问号

  • 本文关键字:不匹配 单词 pandoc
  • 更新时间 :
  • 英文 :


我有这个Lua过滤器:

return {
{
Str = function (elem)
if elem.text == "Dog" then
return {pandoc.Str "Cat"}
else
return elem
end
end,
}
}

可以很好地处理如下内容:

This is a Dog

但不在

This is a Dog?

浏览了https://unix.stackexchange.com/questions/204136/to-regex-pandoc-tables后,这似乎是一项非常复杂的工作。

对于pandoc初学者是否有一个简单的解决方案?

这是在大多数情况下应该工作的东西。它首先将文本拆分为字母数字字符和标点符号,然后检查单词,并在必要时重新添加标点符号:

function Str (str)
local word, punct = str.text:match '(%w*)(%p*)'
if word == 'Dog' then
return 'Cat' .. punct
end
end

Lua不使用正则表达式,而是使用手册中描述的更简单的模式匹配器。(你可以通过re在pandoc中使用regex,但那是另一回事。)

最新更新