PHP正则表达式:如何提取带可选参数的MUI函数中的待翻译文本?
适配MUI函数两种调用形式的正则表达式
针对从PHP源文件提取MUI函数内待翻译文本的需求,这里提供可匹配两种调用形式的正则表达式:
/MUI\((["\'])(.*?)\1(?:,.*?)?\)/
正则逻辑说明:
(["\']):捕获开头的单/双引号作为分组标记,确保后续匹配同类型的闭合引号(.*?):非贪婪匹配引号内的待翻译文本,避免跨引号错误匹配\1:引用开头捕获的引号,保证前后引号类型一致(?:,.*?)?:非捕获组,匹配可选的第二个参数部分(如, $lang),?表示该参数可省略
匹配验证:
对于两种调用形式:
MUI('Some text') MUI("Some text", $lang)
该正则均可正确捕获到Some text作为待翻译内容,同时兼容单双引号包裹的文本,也能忽略可选的第二个参数。
内容的提问来源于stack exchange,提问作者BlackPage
相关产品推荐
相关产品推荐

