小编Wik*_*żew的帖子

正则表达式匹配一个2位数字(以验证信用卡/借记卡发行号)

我想使用正则表达式匹配一个正好2个字符的字符串,并且这两个字符必须介于0和9之间.当ASP.NET MVC时,要匹配的字符串将来自单行文本输入字段视图呈现

到目前为止,我有正则表达式

[0-9]{2}
Run Code Online (Sandbox Code Playgroud)

并从以下示例字符串输入列表中

  • 456
  • 55 44
  • 12

我应用正则表达式时返回以下匹配项

  • 45
  • 55
    44
  • 12

所以,我有一半的解决方案....我实际想要强制执行的是字符串也正好是2个字符长,所以从字符串列表中,唯一应该匹配的是

12
Run Code Online (Sandbox Code Playgroud)

我是正则表达式的业余爱好者,我只是用它来验证ASP.NET MVC模型上的卡片发行号,如下所示....

[Required]
[RegularExpression("[0-9]{2}")]
public string IssueNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)

我确信我所要求的是非常简单但我无法找到任何限制长度的例子作为匹配的一部分.

提前致谢.

regex asp.net-mvc

22
推荐指数
3
解决办法
12万
查看次数

在列表中通过正则表达式过滤字符串

我想使用正则表达式过滤python中的字符串列表.在以下情况中,仅保留扩展名为".npy"的文件.

代码不起作用:

import re

files = [ '/a/b/c/la_seg_x005_y003.png',
          '/a/b/c/la_seg_x005_y003.npy',
          '/a/b/c/la_seg_x004_y003.png',
          '/a/b/c/la_seg_x004_y003.npy',
          '/a/b/c/la_seg_x003_y003.png',
          '/a/b/c/la_seg_x003_y003.npy', ]

regex = re.compile(r'_x\d+_y\d+\.npy')

selected_files = filter(regex.match, files)
print(selected_files)
Run Code Online (Sandbox Code Playgroud)

同样的正则表达式在Ruby中适用于我:

selected = files.select { |f| f =~ /_x\d+_y\d+\.npy/ }
Run Code Online (Sandbox Code Playgroud)

Python代码有什么问题?

python regex

22
推荐指数
2
解决办法
5万
查看次数

如何在 C# 中规范化漂亮的 unicode 字符串?

例如,我从 REST API 收到了具有这种风格的文本

  • ?

  • ?

  • ????? ????????????? ???? ? ?????G?

但这不是斜体、粗体或下划线,因为它是字符串类型。这种文字使它失败了我的正则表达式^[a-zA-Z0-9._]*$

我想标准化在标准字符串中收到的这个字符串,以使我的 Regex 仍然有效。

c# string unicode

21
推荐指数
1
解决办法
846
查看次数

TypeScript 中的此正则表达式方言不允许类别简写

我尝试在 TypeScript 中使用正则表达式:

const pass = /^[\pL\pM\pN_-]+$/u.test(control.value) || !control.value;
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

Typescript 中的此正则表达式方言不允许类别简写

为什么我会收到此错误,如何修复它?

regex typescript

20
推荐指数
1
解决办法
849
查看次数

使用^来匹配Python正则表达式中的行首

我正试图从Thomson-Reuters Web of Science中提取出版年份的ISI风格数据."Publication Year"的行看起来像这样(在一行的最开头):

PY 2015
Run Code Online (Sandbox Code Playgroud)

对于我正在编写的脚本,我已经定义了以下正则表达式函数:

import re
f = open('savedrecs.txt')
wosrecords = f.read()

def findyears():
    result = re.findall(r'PY (\d\d\d\d)', wosrecords)
    print result

findyears()
Run Code Online (Sandbox Code Playgroud)

然而,这会产生假阳性结果,因为该模式可能出现在数据的其他地方.

所以,我想只匹配一行开头的模式.通常我会^用于此目的,但r'^PY (\d\d\d\d)'未能匹配我的结果.另一方面,使用\n似乎做我想要的,但这可能会导致我的进一步复杂化.

python regex

19
推荐指数
2
解决办法
3万
查看次数

为什么正则表达式.*在一个地方较慢而在另一个地方较快

最近我在java/groovy中使用了很多正则表达式.为了测试,我经常使用regex101.com.显然我也在看正则表达式的表现.

有一件事我注意到.*正确使用可以显着提高整体性能.首先,使用.*介于两者之间,或者更好地说不是正则表达式的结尾是性能杀戮.

例如,在正则表达式中,所需的步骤数为27:

在此输入图像描述

如果我先改变.*\s*,这将减少到16显著所需的步骤:

在此输入图像描述

但是,如果我第二个变化.*\s*,它没有任何进一步降低步骤:

在此输入图像描述

我有几个问题:

  1. 为什么以上?我不想比较\s.*.我知道不同之处.我想知道为什么\s.*成本根据他们在完整正则表达式中的位置而有所不同.然后正则表达式的特征可能根据​​它们在整体正则表达式中的位置而成本不同(或者基于除位置之外的任何其他方面,如果有的话).
  2. 此站点中给出的步骤计数器是否真的给出了有关正则表达式性能的任何指示?
  3. 你有什么其他简单或类似(位置相关)的正则表达式性能观察?

regex

18
推荐指数
2
解决办法
1425
查看次数

删除除最后一次以外的所有事件

我想删除.除最后一个字符串之外的所有字符串substring = .

例如:

1.2.3.4
Run Code Online (Sandbox Code Playgroud)

应成为:

123.4
Run Code Online (Sandbox Code Playgroud)

javascript regex

17
推荐指数
4
解决办法
8996
查看次数

Python正则表达式来过滤字符串列表

我试图用正则表达式过滤字符串列表,如本答案所示.但是代码会产生意外结果:

In [123]: r = re.compile('[0-9]*')
In [124]: string_list = ['123', 'a', '467','a2_2','322','21']
In [125]: filter(r.match, string_list)
Out[125]: ['123', 'a', '467', 'a2_2', '322_2', '21']
Run Code Online (Sandbox Code Playgroud)

我期待输出['123', '467', '21'].

python regex

17
推荐指数
2
解决办法
2万
查看次数

正则表达式:匹配以点(.)开头的字符串?

我是一个完整的Reg-exp菜鸟,所以请耐心等待.试图谷歌这个,但还没有找到它.

编写正则表达式匹配以点开头的文件(例如.buildpath.htaccess?)的适当方法是什么?

非常感谢!

regex

16
推荐指数
2
解决办法
2万
查看次数

正则表达式匹配任何非单词字符,但减去

我需要清理文件名.所以我有这个代码:

//\W_ is any non-word character (not [^a-zA-Z0-9_]).
Regex regex = new Regex(@"[\W_]+");
return regex.Replace(source, replacement);
Run Code Online (Sandbox Code Playgroud)

这工作正常,但现在我不想删除减号( - ),所以我将正则表达式更改为:

[\W_^-]+
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我错过了什么?

.net regex

15
推荐指数
1
解决办法
1万
查看次数

标签 统计

regex ×9

python ×3

.net ×1

asp.net-mvc ×1

c# ×1

javascript ×1

string ×1

typescript ×1

unicode ×1