【问题标题】:How to get strings after specific patterns如何在特定模式后获取字符串
【发布时间】:2022-01-12 06:29:39
【问题描述】:

我的字符串看起来像这样:

searchUniqueCode("name", "FF14_1451_DAD4");searchUniqueCode("name", "F1F1_1451_DAD4");
searchUniqueCode("name", "FF14_3121_DAD4");searchUniqueCode("name", "SH14_1451_DAD4");
searchUniqueCode("name", "FF14_1131_DAD4");searchUniqueCode("name", "FF14_1451_D31F");

我正在尝试在通用模式searchUniqueCode("name", 之后获取“”下的所有字符串,例如FF14_1451_DAD4

有什么方法可以使用 PHP 实现吗?

谢谢!

【问题讨论】:

    标签: php regex


    【解决方案1】:

    试试这个正则表达式:

    searchUniqueCode\("name",\s*"\K[^"]+
    

    Click for Demo

    Check code here


    说明:

    • searchUniqueCode\("name", - 匹配 searchUniqueCode\("name",
    • \s*" - 匹配 0 次或多次出现的空格,后跟 "
    • \K - 取消匹配到目前为止已匹配的内容并从当前位置开始匹配
    • [^"]+ - 匹配 1 次或多次出现的非 " 的任何字符。这是所需的匹配,它将匹配所有内容,直到下一次出现 "

    或者

    您可以在第 1 组中捕获所需的值,如下所示:

    searchUniqueCode\("name",\s*"([^"]+)" - Working code here

    【讨论】:

    • 你能帮我解决这个问题吗? [data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,] [data:image/jpeg;base64,] 基本上我需要一个正则表达式,我可以在其中获取“数据:”和“ ;base64"
    • @Karl 我建议你为一个新问题打开一个新线程。无论如何,对于您提到的示例,您可以使用正则表达式 (?<=data:).*?(?=;base64)
    • 非常感谢!!!!!!!你是正则表达式的神!
    猜你喜欢
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 2013-07-18
    • 1970-01-01
    相关资源
    最近更新 更多