Iphone 如何将[…]中的文本与NSRegularExpression匹配

Iphone 如何将[…]中的文本与NSRegularExpression匹配,iphone,regex,Iphone,Regex,要匹配以下示例中“[”和“]”之间的文本,NSRegularExpression是什么: “[这是一些]我想用NSRegularExpression[解析]的文本” Thx提前:)您的模式应该是\[(.*?)\]您的模式应该是\[(.*?)\]不确定NSRegularExpression,但我怀疑它在贪婪性方面与其他正则表达式类似。因此,如果要在同一个字符串中捕获多个[单词]或[括号中的短语],则必须确保正则表达式不是贪婪的 可能类似(为了清楚起见,分成几行:) 不确定NSRegularExpr

要匹配以下示例中“[”和“]”之间的文本,NSRegularExpression是什么:

“[这是一些]我想用NSRegularExpression[解析]的文本”


Thx提前:)

您的模式应该是
\[(.*?)\]
您的模式应该是
\[(.*?)\]

不确定NSRegularExpression,但我怀疑它在贪婪性方面与其他正则表达式类似。因此,如果要在同一个字符串中捕获多个[单词]或[括号中的短语],则必须确保正则表达式不是贪婪的

可能类似(为了清楚起见,分成几行:)


不确定NSRegularExpression,但我怀疑它在贪婪性方面与其他正则表达式类似。因此,如果要在同一个字符串中捕获多个[单词]或[括号中的短语],则必须确保正则表达式不是贪婪的

可能类似(为了清楚起见,分成几行:)


像Daniel回答一样,正确的模式是
\\[(.*?\\]
让我解释一下原因

  • \\[
    表示“开括号”符号。双斜杠允许使用特殊符号
    [
  • All in
    ()
    允许作为原子序列进行并集
  • -任何不带特殊符号的符号
    *?+[(){}^$\124;\./!
  • *?
    -符号输入0次或更多次。匹配次数尽可能少
  • \\]
    -关闭括号

  • 像Daniel回答一样,正确的模式是
    \\[(.*?\\]
    让我解释一下原因

  • \\[
    表示“开括号”符号。双斜杠允许使用特殊符号
    [
  • All in
    ()
    允许作为原子序列进行并集
  • -任何不带特殊符号的符号
    *?+[(){}^$\124;\./!
  • *?
    -符号输入0次或更多次。匹配次数尽可能少
  • \\]
    -关闭括号

  • 那么什么样的正则表达式才能找到不包含在方括号中的文本呢?那么,什么样的正则表达式才能找到不包含在方括号中的文本呢?正则表达式匹配通常是贪婪的,所以大多数实现都会将其匹配为“这是我想[解析]的某些]文本”基于OP的输入文本。您需要显式禁止右大括号。正则表达式匹配通常是贪婪的,因此大多数实现会根据OP的输入文本将其匹配为“这是我想[解析]的某些]文本。您需要显式禁止右大括号。
    \[                     // find an opening square bracket
      ([^]]+)              // find one or more characters that ARE NOT a square bracket
    \]                     // find the corresponding closing square bracket