【问题标题】:Construction of pattern that doesn't contain binary string不包含二进制字符串的模式构造
【发布时间】:2013-02-24 10:26:38
【问题描述】:

我试图编写一个不包含二进制字符串的模式(假设101)。我知道考虑到http://en.wikipedia.org/wiki/Regular_language,这样的表达式不能使用Regular Expression 编写。

我尝试使用Regular Expression 为上述问题编写模式,但它似乎工作正常。

\b(?!101)\w+\b

我想问的是,可以为我的问题编写正则表达式吗?为什么?如果是,那么我的正则表达式是否正确?

【问题讨论】:

  • '请同时包含一个标签,指定您正在使用的编程语言或工具。' (来自[regex]标签说明)
  • 我正在使用在线工具regexpal.com 来测试regex。虽然我没有在任何地方使用它。
  • 情况不相似。一些二进制字符串不支持Regular Expressions

标签: regex


【解决方案1】:

匹配不包含101的整个字符串:

^(?!.*101).*$

前瞻确实是一种通过正则表达式检查字符串条件的简单方法,但您的正则表达式只会匹配不以101 开头的字母数字单词。

【讨论】:

    【解决方案2】:

    你写的

    我知道这样的表达式不能用正则写 考虑http://en.wikipedia.org/wiki/Regular_language的表达式。

    在那篇维基百科文章中,您似乎错过了

    请注意,许多提供的“正则表达式”功能 编程语言增加了使它们的功能 能够识别语言无法表达的语言 正式的正则表达式(正式定义如下)。

    负前瞻结构就是这样一个特征。

    【讨论】:

      猜你喜欢
      • 2011-09-25
      • 2019-06-18
      • 2022-01-09
      • 1970-01-01
      • 2011-08-11
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      相关资源
      最近更新 更多