草庐IT

pcre2_substitute

全部标签

php - 在 PHP PCRE 函数中双重转义或不双重转义?

我一直在寻找一篇关于何时需要双重转义和何时不需要的可靠文章,但我找不到任何东西。也许我看起来不够仔细,因为我确信那里有解释,但让下一个有这个问题的人很容易找到它!以以下正则表达式模式为例:/\n//domain\.com//myfeet\$yourfeet/没什么突破性的吧?好的,让我们在PHP的preg_match函数的上下文中使用这些示例:$foo=preg_match("/\n/",$bar);$foo=preg_match("/domain\.com/",$bar);$foo=preg_match("/myfeet\$yourfeet/",$bar);据我了解,带引号的字符串值

php - RegEx 不适用于长模式 PCRE 的 JIT 编译器堆栈限制 - PHP7

我正在使用oyejorge的less编译器。list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");捕获异常。我缩小了范围,并创建了一个测试脚本$regex='/\\G"((?:[^"\\\\\r\n]|\\\\.|\\\\\r\n|\\\\[\n\r\f])*)"|\'((?:[^\'\\\\\r\n]|\\\\.|\\\\\r\n|\\\\[\n\r\f])*)\'/';$image='"data:image/gif;base64,R

php - pcre.backtrack_limit 的 "unit"是什么?

我遇到一个问题,由于pcre.backtrack_limit,具有复杂正则表达式的preg_replace()会导致错误(PREG_BACKTRACK_LIMIT_ERROR)太低,默认设置为1,000,000。我将它设置为10,000,000,它适用于这个特定的应用程序。我的问题是,回溯限制松散定义的“单位”到底是什么?1,000,000数字是否对应于内存大小?如果不是,这意味着什么?我试图了解在我的环境中对此设置的合理设置。引用preg_replace:http://us3.php.net/manual/en/pcre.configuration.php#ini.pcre.back

php - 哪些字符与 PHP 的 PCRE 中的完全匹配?

manualpage对此保持沉默,尽管用户在其下方发表了评论,其中指出ASCII代码为0x09、0x0A、0x0C的字符,0x0D和0x20,即TAB、LF、FF、CR和SPACE,被识别为“空白”,但没有给出来源。如果PCRE与Perl兼容,显然,这可能不像thisPerldocumentation中解释的那么简单。.事实上,它可能受语言环境的影响,然后开始变得毛茸茸。上下文是我正在尝试替换用于检查纯空格字符串的preg_match调用。 最佳答案 根据PHPdocs:ThespacecharactersareHT(9),LF(1

php - 使用命名模式子例程的 PCRE 正则表达式

我正在试验PHP的PCRE中的命名子模式/“子例程”正则表达式功能,我希望有人可以解释以下奇怪的输出:$re="/(?(DEFINE)(?a))^(?&a)$/x";var_dump(preg_match($re,'a',$match));//(int)1asexpectedvar_dump($match);//Array([0]=>'a')我不明白为什么命名组“a”不在结果中(内容为“a”)。将preg_match更改为preg_match_all会将“a”和“1”放入匹配数据中,但两者都只包含一个空字符串。我真的很喜欢以这种方式编写正则表达式的想法,因为您可以使它们变得非常强大,同

javascript - Javascript 函数中的 PHP (PCRE) 验证

是否有一个现有函数(或者可能有人编写了一些现有代码)来在JS函数中验证传递的文本是有效的PCRE?我疯狂地谷歌搜索,但我能找到的最接近的东西只是“PCRE_JAVASCRIPT_COMPAT”(这是一个PCRE兼容性标志)或关于在PHP和Javascript中验证输入的讨论。我见过的最接近JavascriptREGEX验证的是:try{"".match(regex);returntrue;}catch(e){returnfalse;}这没有考虑JS(ECMA)正则表达式和PHP(PCRE)正则表达式之间的差异-这显然是一个问题,但我还没有找到关于两者之间差异的明确讨论。有什么帮助吗?

php - PHP PCRE 中的\x 是什么意思?

来自themanual:After\x,uptotwohexadecimaldigitsareread(letterscanbeinupperorlowercase).InUTF-8mode,\x{...}isallowed,wherethecontentsofthebracesisastringofhexadecimaldigits.ItisinterpretedasaUTF-8characterwhosecodenumberisthegivenhexadecimalnumber.Theoriginalhexadecimalescapesequence,\xhh,matchesatw

Java 泛型 : Bound mismatch: The type is not a valid substitute for the bounded parameter of the type

我遇到了以下问题:我有这些类和接口(interface)定义publicabstractclassViewModelRefreshPostListFragment>extendsRefreshPostListFragmentimplementsIRefreshPostView{privatefinalViewModelHelpermViewModeHelper=//errorherenewViewModelHelper();...}publicabstractclassRefreshPostViewModelextendsAbstractViewModel{}publicclassVi

等同于 PCRE/etc 的 Java 正则表达式。简写 `\K` ?

PerlRegEx和PCRE(Perl-CompatibleRegEx)等有简写\K来丢弃它左边的所有匹配,除了捕获组,但Java不支持它,所以Java的等价物是什么? 最佳答案 没有直接的等价物。但是,您始终可以使用捕获组重写此类模式。如果你仔细看看\K运算符及其局限性,您将看到可以用捕获组替换此模式。参见rexegg.com\Kreference:Inthemiddleofapattern,\Ksays"resetthebeginningofthereportedmatchtothispoint".Anythingthatwas

java - 是什么导致 SAXException2 : Instance of “com.foo.Bar” is substituting “java.lang.Object” , 但 “com.foo.Bar” 绑定(bind)到匿名类型

这个问题在这里已经有了答案:com.sun.istack.SAXException2:Instance...issubstituting"java.lang.Object",but...isboundtoananonymoustype(3个答案)关闭4年前。将现有的jaxb(同时使用jaxb1.0.1和jaxb2.0.5)应用程序(在带有jdk5的JBoss4.3上)迁移到jaxb2.1.10(随jdk6提供,更新jdk1.6.0_30)。我无法修改客户提供的架构。我已经从SunRI中删除了对jaxws20、jwsdp、jaxp和jaxbjar的所有引用,并且我只使用jdk6提供的ja