我有一个字符串中的下一个代码:
<div class="navbar-nav navbar-right">
<span class="text-muted my-2 my-sm-0 mx-2">@lang('Welcome, user', ['user'=> $user]). {{ $login }} {!! $adminBadge !!}</span>
</div>
<div class="navbar-nav navbar-right">
<a href="{{ route('logout') }}" class="btn btn-outline-success my-2 my-sm-0" role="button">@lang('menu.close_session')</a>@lang('This is a very @lang("gag") complex string') another {{ __('call example') }} call
</div>
问题是,如果我想获取每个@lang()
和__()
上包含的所有字符串,但我不知道如何获取的最佳方法是什么,使用regexp,下一个模式就不能很好地工作:@lang\('([^']+)'\)
因为这将在@lang('something\'asohgag')
或@lang('other faled\'string\'oagha')
上失败,我如何修复这个问题,确保所有@lang调用都被检查成功?谢谢!
我找到了一个解决方案,多亏了https://www.metaltoad.com/blog/regex-quoted-string-escapable-quotes,我发现了如何检测包含includins转义引号的字符串:
$reStringPattern = "((?<![\\\\])['\"])((?:.(?!(?<![\\\\])\\1))*.?)\\1";
if(preg_match_all("/@lang\({$reStringPattern}(,[^\)]+)?\)/", $content, $matches)) {
$languageKeys += $matches[2];
}
而用于检测字符串的基本正则表达式没有escpaing字符:
((?<![\\])['"])((?:.(?!(?<![\\])\1))*.?)\1";
因此请注意,在php中,due RegExp位于字符串中,必须转义\
和“
以避免出现问题
问题内容: 我正在寻找从Java程序中执行Haskell函数的有效方法。我已经考虑过使用exec()与GHC进行交互,但是似乎应该有一个更好的方法。 问题答案: 我通常避免使用JNI类型的方法来跨运行时/语言进行链接。他们只是有太多的陷阱而没有什么好处。我发现跨流程边界工作更容易。尽管我从未在Haskell和Java上尝试过,但它们都具有支持XML RPC的库,听起来很自然地适合您的工作。因此:将
问题内容: 我在数组上进行映射,对于新对象的返回值之一,我需要进行异步调用。 该功能的实现将类似于 我不清楚做到这一点的最佳方法是什么…承诺?嵌套的回调?在ES6或ES7中使用某些东西,然后与Babel进行转换? 目前实现此目的的最佳方法是什么? 谢谢! 问题答案: 一种方法是(ES6)。 该答案将在Node 4.0+中起作用。较旧的版本将需要Promise polyfill或库。我还使用了ES6
问题内容: 哪种方法可以更好地检查属性是否存在? Jarret Hardie提供了以下答案: 我看到它也可以通过以下方式完成: 一种方法通常比其他方法使用更多吗? 问题答案: 没有“最佳”方法, 因为您永远不会仅仅检查属性是否存在;它始终是某些较大程序的一部分。有几种正确的方法,一种值得注意的不正确的方法。 这是演示此技术失败的演示: 输出: 大多数情况下,您不想惹恼。这是用于执行特殊操作的特殊属
本文向大家介绍JavaScript中5种调用函数的方法,包括了JavaScript中5种调用函数的方法的使用技巧和注意事项,需要的朋友参考一下 这篇文章详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助! JavaScript,调用函数的5种方法 一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正理解Javascri
问题内容: 有没有可靠的方法来检测用户是否在jQuery中使用移动设备?类似于CSS @media属性吗?如果浏览器在手持设备上,我想运行其他脚本。 jQuery 函数不是我想要的。 问题答案: 编者注: 对于现代Web应用程序,不建议使用用户代理检测技术。请参阅此答案下方的评论以确认这一事实。建议使用特征检测和/或媒体查询来使用其他答案之一。 除了使用jQuery,您还可以使用简单的JavaSc
问题内容: 我有两种检查列表是否为空的方法 和 我的拱门告诉我,前者比后者更好。但是我认为后者更好。 任何人都可以澄清一下吗? 问题答案: 您应该 绝对 使用。计算任意列表的可能会很昂贵。即使确认是否有任何元素 可以 是昂贵的,当然,但没有优化不能 也 让速度更快,而相反的情况并非如此。 例如,假设你有一个链表结构,它 并没有 缓存的大小(而 做 )。然后将变为O(N)运算,而仍为。 当然,另外,