繁体   English   中英

使用regexp检查模算术条件

Check modulo arithmetics conditions using regexp

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在编写一个脚本来分析文本文件(准确地说是csv),并且我想根据每行内容从文件中选择行。 有很多字符串条件需要检查,因此我猜想正则表达式是可以解决的方法,但是我还需要根据模数运算的条件在一行的开头检查一个数字,到目前为止,它是n%4==k并且n%2==k 但是,似乎只有临时解决方案。 n%2==k非常简单,但是要检查n%4==2我必须设计如下代码:

r'((^\d*[24680]|^)[26]|^\d*[13579][048])[\s;,].*' # more (unrelated) conditions follow

我的问题是:

  1. 有没有办法简化上面的正则表达式? 有什么明显的问题吗?
  2. 如果我想将脚本推广到其他模数条件(例如n%3==kn%7==k ),是否有可行的方法使用regexp进行处理,或者我最好从字符串中提取一个数字并编写其他代码以检查此类情况。
1 个回复

对于n%4==2这似乎更准确(参考: http : //en.wikipedia.org/wiki/Divisibility_rule

r = r'^[26]$|^\d*[02468][26]$|^\d*[13579][048]$'

# test
for i in xrange(1, 1000):
    m = re.match(r, str(i))
    if i % 4 == 2:
        assert m, [i, i % 4]
    else:
        assert not m, i

对于n%3==0请参见正则表达式过滤器数字可被3整除 我不知道针对mod n的任何通用解决方案,无论如何这将是一个有趣的但纯粹是理论上的练习。 在现实生活中,只需使用整数即可。

1 对区间使用模算术

假设我们有范围 [-2, -1, 0, 1, 2, 3] ,可以描述为 MIN_VALUE=-2 和 MAX_VALUE=3 我们想要实现一个名为 infiniteCarousel() 的函数,它可以接受任何数字并使用模数运算符(或其他东西)以计算指定范围内的相应数字。 你知道任何有效的方法来实 ...

2 使用RegExp过滤字符串中的条件和组

我正在尝试实现某种动态过滤。 假设我有一个对象集合。 每个对象都有相同的键,但值不同。 例如: 我想按照从字符串中提取的模式对它们进行过滤和分类。 Ex(完全没有意义,只是推断): 我认为,检测该字符串的最佳方法是通过正则表达式。 为了能够捕获组,操作数和运 ...

3 在多个条件下使用RegExp

我有以下代码: 问题是它返回一个空数组,但是当我删除RegExp (Pop / Indie)内部的条件之一时,它会正确返回。 我在RegExp中做错了什么? 我怎样才能解决这个问题? ...

4 使用pdo检查2种情况

在这种情况下如何具有2个条件? 我也想检查电子邮件,不仅用户名。 $checkuser = htmlentities($_POST["username"]); $data = $connect_pdo->prepare('SELECT username FROM users WHERE ...

6 使用Regexp检查字符串是否以辅音开头

有没有更好的方法在Ruby中编写以下正则表达式? 第一个正则表达式匹配一个字符串,该字符串以(小写)辅音开头,第二个用元音。 我试图弄清楚是否有一种方法可以编写与第二个表达式的负数相匹配的正则表达式,而不是使用多个范围编写第一个表达式。 ...

7 如何使用RegExp检查句子中的重复项

在金融中,您有一个称为“货币对”(USD / GBP)的东西。 我如何创建一个正则表达式来验证这一点,以便用户不会两次输入相同的货币(美元/美元)? 我有以下基本的正则表达式可以使用: ...

8 将REGEXP_LIKE与多重条件配合使用以匹配模式

表名称:测试列名称:ID列ID的正确格式-'^ \\ d {4}-\\ d {6}-\\ d {3}-\\ d1} $' 条件:必须与上述模式匹配,但不能以15开头,数字2-8、00、000、0000。 使用REGEXP_LIKE匹配指定的条件,但无法在单个REGEXP_LIKE中包 ...

9 使用for循环检查`if`中的多个条件

我必须检查多个“和”条件,例如: 我可以在上面使用for循环执行以下操作吗? 上面建议的将不起作用,因为即使其中之一为true,它也会将条件设置为true。 ...

2015-11-23 07:26:46 2 149   python
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM