Php 编写正则表达式以在laravel项目中查找翻译
我编写了一个正则表达式模式:Php 编写正则表达式以在laravel项目中查找翻译,php,regex,laravel,pcre,Php,Regex,Laravel,Pcre,我编写了一个正则表达式模式: (trans|trans_choice|Lang::get|Lang::choice|Lang::trans|Lang::transChoice|@lang|@choice)\(([\'"]([a-zA-Z0-9_-]+([.][^)\'"]+?)+)[\'"])(\s?,\s?.*)*?[\)\]];? 用于定位laravel翻译字符串,例如: trans('email.subject) @lang('email.confirm-email-address-bu
(trans|trans_choice|Lang::get|Lang::choice|Lang::trans|Lang::transChoice|@lang|@choice)\(([\'"]([a-zA-Z0-9_-]+([.][^)\'"]+?)+)[\'"])(\s?,\s?.*)*?[\)\]];?
用于定位laravel翻译字符串,例如:
trans('email.subject)
@lang('email.confirm-email-address-button')
但我很难确定如何将带有斜杠的翻译字符串作为目标,例如:
@lang('emails/order-received.edit-order-button')
你可以用
(trans(?:_choice)?|Lang::(?:get|choice|trans(?:Choice)?)|@(?:lang|choice))\(([\'"]([^\'"]+)[\'"])[)\]];?
看
详细信息
-第1组:(trans(?:u choice)?Lang:(?:get | choice?trans(?:choice)?)@(?:Lang | choice))
-trans(?:\u choice)?
后接trans
\u choice
-或|
-Lang:(?:get | choice | trans(?:choice)?)
后跟Lang:
,get
,choice
或trans
transChoice
-或|
-@(?:lang | choice)
后跟@
或lang
choice
-a\(
字符(
-第2组:([\'”]([^\'“]+)[\'”]
或“
,然后第3组匹配除”
和“
之外的任何1+字符,然后是”
或“
”
-a[)\]
或)
字符]
代码>-可选的
代码>
注意:用一个正则表达式解析代码可能太脆弱。请考虑在一个更复杂的解决方案中使用这个正则表达式,或者使用一个专用的解析器(如果存在的话)。<检查> <代码>(Trn(?):郎?):(:?]?,谢谢Wiktor,这正是我想要的,谢谢你缩短了它。你能把它作为一个答案贴出来吗?