菜鸟教程小白 发表于 2022-12-12 21:44:24

ios - 用于触摸主题标签的 Objective-C 正则表达式


                                            <p><p>我有一些代码(如下),当文本发生变化时,它会解析一个 uitextfield 的主题标签和 @-symbols。它适用于:</p>

<pre><code>#one #two
</code></pre>

<p>..但是当两个标签彼此相邻时失败,如下所示:</p>

<pre><code>#one#two
</code></pre>

<p>这是我的代码:</p>

<pre><code>- (IBAction)changed:(UITextField*)sender
{
    NSRegularExpression *regexp = [ initWithPattern:@&#34;(?:^|\\s|[\\p{Punct}&amp;&amp;[^/]])((#[\\p{L}0-9-_]+)|(@[\\p{L}0-9-_\\.]+))&#34; options:NSRegularExpressionCaseInsensitive error:nil];
    NSArray *matches = options:0 range:NSMakeRange(0, [length])];
    NSMutableString *output = [ init];
    for (NSTextCheckingResult *linkRange in matches) {
      NSString *match = [ substringWithRange:];
      ;
      ;
    }
    self.label.text = output;
}
</code></pre>

<p>处理空格和无空格的正确正则表达式是什么?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我没有分析您的整个模式,但我测试了您的代码并仅检测您应该使用的主题标签:</p>

<pre><code>NSRegularExpression *regexp = [ initWithPattern:@&#34;#[^# ]+&#34; options:NSRegularExpressionCaseInsensitive error:nil];
</code></pre>

<p>输出:</p>

<blockquote>
<p>output    __NSCFString *@&#34;#dl\n#laklkjdfg\n#glkjs\n&#34;    0x1839cab0</p>
</blockquote>

<p>为:</p>

<pre><code>NSString *text = @&#34;#dl#laklkjdfg #glkjs&#34;;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 用于触摸主题标签的 Objective-C 正则表达式,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23108751/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23108751/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 用于触摸主题标签的 Objective-C 正则表达式