【问题标题】:RegEx how to properly use OR pipelinesRegEx 如何正确使用 OR 管道
【发布时间】:2013-02-11 18:32:35
【问题描述】:

当涉及到单个字符和整个短语时,我需要知道如何正确使用“OR”...例如,我有代码可以检查在数组中找到的任意数量的字符或单词...

我想检查一些 unicode 字符以及一些 html 代码行。

我目前只是用这个来检查字符:

([\u200b\u200c\u200d\0\1\2\3\4\5\6\7]*)

(反斜杠代表 unicode 字符 u+200b - u+200d 和我的软件中的特殊字符 \0-\7它们都是单独的字符),这些是 Objective 中的有效转义序列-C.)

现在,如果我想检查这些字符并检查诸如 <b><font color="#FF0000"> 之类的短语该怎么办

我在做研究时发现了一些东西,说要使用管道|,但我不确定我是把它们放在单词之间还是放在单个字符之间,我不确定我是否把在单词周围引用或不引用......在我把这件事搞砸之前我需要帮助哈哈!

(ps,不确定是否会有所不同,但我也是为此而做的:

([^\u200b\u200c\u200d\0\1\2\3\4\5\6\7])

【问题讨论】:

  • 感谢编辑!我忘了 SO 允许 HTML ;) 哈哈!

标签: ios objective-c regex string character


【解决方案1】:

有点像

/([^....]|\<b\/\>|\<font color .... \>)/

不过,关于regexes and html 的常见警告适用于此处。

至于在哪里放置| 的困惑,考虑这个陈腐的例子:你想找到单词color,但又想适应英国的拼写,colour

/(color|colour)/
/(colou?r)/
/(colo(r|ur))/

基本上都是等价的。

【讨论】:

  • 感谢您提供有关英式拼写的提示!幸运的是,我确信它始终是确切的字符串 &lt;font color="#00FF00"&gt;(或 8 个其他特定变体),因为它是由另一款软件生成的
  • 这是什么意思? \&lt;b\/\&gt; 会变成&lt;b&gt; 还是&lt;b/&gt;
  • 反斜杠转义元字符。一些正则表达式引擎使用&lt;&gt; 来处理各种事情,而/ 通常是正则表达式分隔符,所以我出于习惯将它们全部转义。
  • 我很困惑你的代码中的省略号是什么......这些点是否只代表我输入的内容我只需要复制粘贴到那里或者是 RegEx 中的某种类型的代码(对不起,我是 RegEx 的新手,上次我从示例代码中删除了一些句点,它停止工作了哈哈)
  • 我会这样做吗? (我还必须用反斜杠转义井号或等号吗?)...([^[\u200b\u200c\u200d\0\1\2\3\4\5\6\7]|\&lt;b\&gt;|\&lt;font color=\"#FF0000\"\&gt;])
猜你喜欢
  • 1970-01-01
  • 2021-01-26
  • 2022-01-27
  • 1970-01-01
  • 2021-07-19
  • 2019-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多