ActionScript中的负面外观

时间:2012-11-02 21:50:24

标签: regex actionscript-3 emoticons negative-lookbehind

我正在尝试编写一个与大多数常见表情符号匹配的正则表达式,但如果它们位于链接中则不会。

  • 我的表情符号为:P =P :-P =-P :) :-) =) =-) { {1}} :/ =/ :-/ =-/ :o =o :-o =-o :( { {1}} :-( =( =-( :D :d :-D :-d =D =d < / p>

  • 我不希望=-D=-d

  • 中的表情符号相匹配
  • 我也不希望http://:/

  • 中导致表情符号
  • 我不能使用空格作为分隔符,因为我希望人们能够像这样背靠背键入多个表情符号:http://something.com?feature=player

我当前的正常表达式几乎正在运行:

:p

问题是链接中只省略了第一个表情匹配,而不是全部。

我一直在使用Grant Skinner's Regexr进行测试。

2 个答案:

答案 0 :(得分:1)

匹配正则表达式中的所有URL本身就是一项非常复杂的任务......也许,除非您感到特别挑战,否则不值得尝试。编写一个解析所需内容的函数要容易得多。但是,一个很好的近似URL可能是/\w+([-+]\w+)*:[^\s]+/(一些示例可以让您更好地理解为什么会这样:svn+ssh://localhostftp://site_name.ouch.auch/~directory/?paramter:=)#anch:o)rhttps://Новости-Советского-Информ-Бюро.рф/С%25Новым%25Годом! )。所有这些都是有效的URL:)

所以,我的策略是首先消除看似可能是URL的东西(这有时候会抓住微笑,因为用户最终可能会通过写笑脸创建一个有效的URL),并解析其余的。 / p>

答案 1 :(得分:0)

尝试模式

(?:(?<!http)(?<!http:):/(?![a-zA-Z0-9])|:-/|=-?/|[:=]-?[()]|[:=]-?[PDdo](?!$)(?![a-zA-Z0-9=]))