【发布时间】:2021-12-05 03:21:35
【问题描述】:
我想从刀片文件 ({{ __('some phrase') }}) 中解析出语言字符串并将它们自动存储在语言文件中。我确实尝试了一个与此相关的插件,它工作正常,但不允许运行函数。我创建了以下正则表达式。
{ // Opening curly brace
(?:\s+?)? // Optional spacing
{ // Opening curly brace
(?:\s+?)? // Optional spacing
(?:.+?)? // Optional function
__\( // Begin translation function
(?:\s+?)? // Optional spacing
(?:'|\") // Single or double quote
(.+?) // Actual string to capture
(?:'|\") // Single or double quote
(?:\s+?)? // Optional spacing
(?:\)|,) // End translation function, basically
(?:.+?)? // Ending optional function
(?:\s+?)? // Optional spacing
} // Ending curly brace
(?:\s+?)? // Optional spacing
} // Ending curly brace
"/{(?:\s+?)?{(?:\s+?)?(?:.+?)?__\((?:\s+?)?(?:'|\")(.+?)(?:'|\")(?:\s+?)?(?:\)|,)(?:.+?)?(?:\s+?)?}(?:\s+?)?}/"
我知道这并不完美,我该如何进一步改进以更好地捕捉一些边缘情况,例如一些结束字符串打破了中间的捕捉?
【问题讨论】:
-
您可能应该尝试查看您尝试过的插件,看看它们如何匹配所有内容。也许他们还涵盖了最终的边缘情况(不确定会是什么)
-
他们没有,这就是我开始自己制作的原因。不过谢谢你的评论。