【问题标题】:How can I use regex to put quotes around a statement如何使用正则表达式在语句周围加上引号
【发布时间】:2012-01-19 05:09:50
【问题描述】:

我正在使用regexkitlite 在 xcode 中验证我的 iPhone 应用程序中的一些数据。

我正在发送一个 json 结果的 api 调用:

"taskDate": newDate("September 23, 2011 00:00:00")

我如何使用正则表达式将其转换为:

"taskDate": "newDate("September 23, 2011 00:00:00")"

我想用引号将每个“taskdate”键的值括起来。

编辑:添加 OP 的评论

这是我正在使用的:

[resultString replaceOccurrencesOfRegex:@"new Date((.*?)\")," withString:@"\"\"," range:NSMakeRange(0, [resultString length])];

其中 resultString 是包含“new Date(....”的字符串

【问题讨论】:

    标签: iphone ios regex xcode regexkit


    【解决方案1】:

    您可以使用正则表达式来识别文本中的文本位置,格式为“taskDate”:“newDate("September 23, 2011 00:00:00")”,但实际替换您必须自己编写.正则表达式不会替换字符串,它会在字符串中查找模式。现在,为了找到"taskDate": newDate("<anything can go here>") 的模式,您可以使用

    "taskDate"\: newDate\(".*?"\)
    

    如果括号内可以包含其他内容,则必须更具体,并且只在括号内指定日期:

    "taskDate"\: newDate\("[a-zA-z]* \d{2}, \d{4} \d{2}\:\d{2}\:\d{2}"\)
    

    这将匹配"taskDate"\: newDate\("Letters 00, 00:00:00"\) 之类的所有内容。从这里您可以指定月份,并在所有引号之间留出空格。所有这些更改使正则表达式更加复杂,因此只能使其更加严格以避免匹配您不想要的东西。如果不存在括号内可以包含其他内容的情况,我会使用第一个正则表达式。

    也就是说,在匹配内容中的字符串后,您需要编写代码以将其用引号括起来。

    【讨论】:

    • 我注意到您确实提到正则表达式不会替换字符串。我正在为 iOS 使用 regexkitlite,它确实有一个功能“replaceoccurencesofregex”。这是我正在使用的: [resultString replaceOccurrencesOfRegex:@"new Date((.*?)\")," withString:@"\"\"," range:NSMakeRange(0, [resultString length])]; 其中resultString 是包含“new Date(....”的字符串
    • 我不熟悉 regexkitlite 或一般的 iOS :) 然后使用它具有的替换功能和我写的正则表达式。让男人知道您是否需要更多帮助:)
    • 如何提取“”部分,以便将其从 new Date(033333) 重写为“new Date(033333)”?
    猜你喜欢
    • 2020-11-12
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 2020-12-28
    相关资源
    最近更新 更多