【问题标题】:regex to not detect hashtag after a character not space正则表达式在字符不是空格后不检测主题标签
【发布时间】:2014-12-11 06:52:09
【问题描述】:

我正在尝试从 Objective-C 中的 NSStrings 中扫描主题标签,并且我正在使用正则表达式。我在 Facebook 上创建了一个测试状态,以查看哪些是有效的主题标签,因为我想用它来设计我的主题标签检测。我的问题是我的正则表达式仍然得到没有以空格开头或在字母数字之前的主题标签。在somethin#idfsjoa 中,#idfsjoa 被检测为不应该的主题标签。我正在使用regexpal 来测试我的正则表达式。

如何检查“#”是否不在空格后面?

来自 Facebook:

NSString:

#face #Fa!ce something #iam#1 #1 #919 #jifdosaj somethin#idfsjoa #9#9#98 9#9f9j#9jlasdjl #jklfdsajl34 #34239 #jkf #a #1j3rj3

我目前拥有的正则表达式:

(?!\w+)#(\w+)([A-Za-z0]+)

【问题讨论】:

  • 你的字符串的预期结果是什么?
  • 你使用的 Obj-C 代码在哪里?
  • 我没有放我正在使用的目标 C 代码,因为我只需要关于 regex 语句的帮助。我只是把 Obj-C 放在标签上,让人们知道我在 iOS 上使用正则表达式。 @l'l'l
  • 你答对的速度太快了;我有一个 obj-c 解决方案,但没有机会发布。同样在您示例中的最后一个主题标签上,它应该匹配吗?
  • 这是因为我已经可以从Objective-C的检查结果中得到匹配的字符串了。我唯一的问题是正则表达式公式,因为我自己的公式仍然得到一个无效的标签。如果您想分享,您仍然可以发布您的解决方案,以便其他人有一天可以看到它,如果他们提出这个问题,它可能会帮助其他人。

标签: ios objective-c regex hashtag


【解决方案1】:

这似乎符合您的条件:

(?:\s|^)(#(?:[a-zA-Z].*?|\d+[a-zA-Z]+.*?))\b

请注意,主题标签本身将是第一个(也是唯一一个)捕获。

【讨论】:

  • 太棒了!有没有办法删除检测到的主题标签开头的空格?
  • 从技术上讲,该空格由正则表达式“匹配”,但唯一的主题标签本身包含在表达式的捕获 ((#(?:[a-zA-Z].*?|\d+[a-zA-Z]+.*?))) 部分中。老实说,我不是一个 Objective-C 程序员,所以我不能告诉你确切的方法,但几乎 所有 正则表达式引擎将让你在比赛中访问捕获......这就是你想要的想要这里。
  • 我认为可以。我只会修剪标签上的空格。
  • 看起来你想要这样的东西:stackoverflow.com/a/9276827/376789
  • 上面的语句似乎与“#hello!#world”中的“world”不匹配,我认为这应该是一个有效的标签。有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 2021-02-17
  • 2017-10-01
  • 1970-01-01
  • 2022-06-24
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
相关资源
最近更新 更多