小编sun*_*ica的帖子

如何在Python中搜索正则表达式匹配?

我需要尝试一个字符串对多个(独占 - 意味着匹配其中一个的字符串不能匹配任何其他)正则表达式,并根据它匹配的代码执行不同的代码.我现在拥有的是:

m = firstre.match(str)
if m:
    # Do something

m = secondre.match(str)
if m:
    # Do something else

m = thirdre.match(str)
if m:
    # Do something different from both
Run Code Online (Sandbox Code Playgroud)

除了丑陋之外,这个代码与所有正则表达式相匹配,即使它匹配其中一个(比如firstre),这是低效的.我试着用:

elif m = secondre.match(str)
Run Code Online (Sandbox Code Playgroud)

但是我知道if语句中不允许赋值.

有没有一种优雅的方式来实现我想要的?

python regex switch-statement

5
推荐指数
1
解决办法
199
查看次数

Julia - 尝试比较两个字符串

我正在尝试比较作为输入获得的两个字符串,但它向我打印了一个错误,例如“语法:意外的”=”。

x = readline()
y = readline()

y = println(cmp(y, "Ciao"))
x = println(cmp(x, "Ciao"))


    
if  x=1
    println("Ho fatto un confronto in modo giusto")

elseif x=0
    println("No simone, non hai inserito quello che mi aspettavo")

elseif y=1
    println("Hai inserito la y e l'ho controllata, il programma funziona")

elseif y=0
    println("No simone, non hai inserito quello che mi aspettavo")

else println("Il programma non ha funzionato")
   
end 

return x,y
Run Code Online (Sandbox Code Playgroud)

julia

5
推荐指数
1
解决办法
680
查看次数

如何在 vim Xcode 下插入换行符时删除缩进上的所有空格

我是 Xcode 新手,在 Xcode 下使用 vim 作为编辑器。如何shift + O在Xcode下的vim中添加换行符而不添加空格作为缩进?

所以我不会像下面那样在空行中有很多空间git diff

在此输入图像描述

这就是我所期望的git diff 在此输入图像描述

vim xcode

5
推荐指数
1
解决办法
1293
查看次数

为什么我的非贪婪Perl正则表达式什么都不匹配?

我以为我在合理的范围内理解了Perl RE,但这令我感到困惑:

#!/usr/bin/perl
use strict;
use warnings;

my $test = "'some random string'";

if($test =~ /\'?(.*?)\'?/) {
       print "Captured $1\n";
       print "Matched $&";
}
else {
       print "What?!!";
}
Run Code Online (Sandbox Code Playgroud)

版画

捕获的
匹配'

它似乎与"结局"相匹配,因此没有任何结果.
我本来期望它与整个事物相匹配,或者如果它完全不贪婪,什么都没有(因为一切都有可选匹配).
这种行为让我感到困惑,任何人都可以解释发生了什么?

regex perl greedy regex-greedy

4
推荐指数
1
解决办法
6388
查看次数

什么是自动执行涉及Outlook和Excel的Windows任务的最佳语言?

我需要自动执行涉及以下任务的特定任务:

  • 根据一组标准从我的邮箱中提取邮件 - 来自特定用户,具有特定的主题行模式等.

  • 解析每封邮件的邮件正文并提取一些内容(邮件几乎是固定的模式)

  • 使用特定模板创建Excel工作表(前两行是常量,第三行是本周的星期五和星期五等),然后将上面提取的内容以连续的行粘贴到此工作表中.

  • 使用不同格式创建具有相同内容的Outlook电子邮件

  • 使用此邮件附加上述Excel工作表.

(最后发送它,但我不想自动化那部分 - 我喜欢在发送邮件之前仔细检查一下.)

现在,当我想到自动执行这项任务时,Perl的Win32 :: OLE立即浮现在脑海中,因为我最近才了解它,并且在Perl中非常舒服.但是,我认为Visual Basic for Automation可能更适合这项任务,因为它是为这些任务创建的语言.

我的问题是,VBA是否足以抵消Perl和VB之间技能组的差异?几年前我小时候玩过VB6,但那是关于VB体验的程度.

我也对任何其他语言/平台建议持开放态度,只要它们具有一定的灵活性并且不太难学.我也知道一些Python.

我看了这个以及这个,这个,这个这个,但它们要么不相关,要么没有任何好的答案.

excel outlook automation vba

4
推荐指数
1
解决办法
5014
查看次数

在C++中调用std :: sort时使用std :: greater的语法

对反向排序容器的推荐方法(例如:按降序排序向量)似乎是:

std::sort(numbers.begin(), numbers.end(), std::greater<int>());

我理解第三个参数是一个函数或函数,它帮助sort()进行比较,而std :: greater是一个模板函子,但我不明白这里发生了什么.我的C++非常生疏,如果这些都是愚蠢的问题,请耐心等待:为什么那之后std::greater<int>有括号?我们std::greater在这里创建一个新对象吗?在这种情况下,为什么我们不需要new这里的关键字?

c++ stl std

4
推荐指数
1
解决办法
216
查看次数

fun(n :: Integer)和fun(n :: T)之间有区别吗?其中T <:整数在性能/代码生成中?

在Julia中,fun(n::T) where T<:Integer当函数适用于所有子类型时,我经常看到代码编写Integer.但有时,我也看到fun(n::Integer),一些指南声称与上述相同,而其他人则认为效率较低,因为Julia并不专注于特定的子类型,除非明确提到子类型T.

后一种形式显然更方便,如果可能,我希望能够使用它,但这两种形式是否相同?如果没有,它们之间的实际差异是什么?

performance multiple-dispatch julia

4
推荐指数
1
解决办法
117
查看次数

在 Julia 中从 .csv 文件中提取数据

我对 Julia 很陌生,我有一个 .csv 文件,该文件存储在 gzip 中,我想从中提取一些信息以用于教育目的并更好地了解该语言。

在Python中,Panda有许多有用的函数可以帮助解决这个问题,但我似乎无法直接解决问题......

这是我的代码(我知道,非常弱!!!):

{
import Pkg 
#Pkg.add("CSV")
#Pkg.add("DataFrames")
#Pkg.add("CSVFiles")
#Pkg.add("CodecZlib")
#Pkg.add("GZip")
using CSVFiles
using Pkg
using CSV
using DataFrames
using CodecZlib
using GZip


df = CSV.read("Path//to//file//file.csv.gzip", DataFrame)

print(df)
}
Run Code Online (Sandbox Code Playgroud)

我添加了一个屏幕来显示 .csv 文件内的列的外观。 在此输入图像描述 我想提取日期并制作评论最多的前 10 位用户、线程最多的前 10 天等。

我想指出的是,这不是给我的练习,而是我想自己进行的训练。 4.

我知道熊猫版本是这样的:

df['threadcreateddate'] = pd.to_datetine(df['thread_created_utc']).dt.date
Run Code Online (Sandbox Code Playgroud)

或者

df['commentcreateddate'] = pd.to_datetime(df['comment_created_utc']).dt.date
Run Code Online (Sandbox Code Playgroud)

并对其进行排序:

pf_number_of_threads = df.groupby('threadcreateddate')["thread_id'].nunique()
Run Code Online (Sandbox Code Playgroud)

如果我要绘制它:

df_number_of_threads.plot(kind='line')
plt.show()
Run Code Online (Sandbox Code Playgroud)

打印:

head = df.head()
print(df_number_of_threads.sort_values(ascending=False).head(10))
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?df.select() 函数对我不起作用。

dataframe pandas julia dataframes.jl

4
推荐指数
1
解决办法
484
查看次数

在Julia中进行频率计数的最佳方法

我有一个二进制文件,我正在julia进行频率计数.

using PyPlot
import StatsBase
const stb=StatsBase

function getall(fname)
    b=Mmap.mmap(fname,Vector{Int32})
    #a=open(fname)
    #b=reinterpret(Int32,readbytes(a))
    d=stb.countmap(b)
    x=collect(keys(d)) & 0x7ffffff
    y=collect(values(d))
    #plot(x,y,"r^")
    #xlim(0,3000)
    #ylim(0,3e5)
    #grid("on")
    return x,y
end
Run Code Online (Sandbox Code Playgroud)

在python中,我使用numpy.unique,numpy.memmap并获得类似的性能(550毫秒).Julia代码可以更快吗?有没有其他方法可以计数而不是使用StatBases.

binary statistics counter julia

3
推荐指数
1
解决办法
808
查看次数

如何过滤数据框中的列?

我有一长串日期(从 1942-1-1 00:00:00 到 2012-12-31 24:00:00)。这些分别与一些金额相关(见下文)。有没有办法先单独过滤一天的所有金额,然后将它们加在一起?

例如,对于 1942-01-01,如何找到这一天(从时间 0 到 24)发生的所有值(金额),然后将它们加在一起?

    time                    amount
        DateTime            Float64
    1942-01-01T00:00:00     7.0
    1942-01-02T00:00:00     0.2
    1942-01-03T00:00:00     2.1
    1942-01-04T00:00:00     3.0
        :
    2012-12-31T23:00:00     4.0
    2012-12-31T24:00:00     0.0
Run Code Online (Sandbox Code Playgroud)
df = CSV.read(path, DataFrame)
for i in 1:24
  filter(r ->hour(r.time) == i, df)
end

Run Code Online (Sandbox Code Playgroud)

datetime dataframe julia dataframes.jl

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