要搜索的字符串中带有变量的PHP正则表达式

ulydmbyx  于 2022-11-21  发布在  PHP
关注(0)|答案(1)|浏览(111)

我需要一个正则表达式,它将允许我从PHP源文件中检索以下所有数据:

MUI('Some text')
MUI("Some text", $lang)

正则表达式用于提取php文件中MUI(“...”)中包含的所有术语,以便构建要翻译的条目列表。我已经有了第一种情况的正则表达式:

MUI("Some text") > $pattern = '/MUI\((["\'].*?)["\']\)/';

但我必须添加一个参数,这是一个变量,从那时起,我的正则表达式不会找到第二种情况

MUI("Some text", $lang).

请注意,要查找的文本可能被"“或“”括起来。提前感谢您的想法。

brtdzjyr

brtdzjyr1#

您可以使用

(?s)MUI\((?|"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)')

请参阅regex demo

  • 详细数据 *:
  • (?s)-.现在匹配任何字符,包括换行符
  • MUI\(-MUI(字符串
  • (?|"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)')-分支复位组匹配:
  • "([^"\\]*(?:\\.[^"\\]*)*)"-双引号字符串文字(将引号之间的内容捕获到组1中)
  • |-或
  • '([^'\\]*(?:\\.[^'\\]*)*)'-单引号字符串文字(将引号之间的内容捕获到组1中-是的,仍然是组1,因为这是分支重置组内的备选项)。

相关问题