小编cha*_*aos的帖子

什么是[AZ]意思是[A-Za-z]?

我已经注意到一段时间了,至少在我使用的一些基于Unix的系统上,我ls [A-Z]*已经给了我预期的结果ls [A-Za-z]*,让我无法轻易得到一个开头的那个该死的文件列表大写字母.我刚刚遇到了同样的事情grep,我无法让它停止匹配小写字母[A-Z]直到我最终用来grep -P获得Perl正则表达式.

所以我有一些相关的问题:

  1. 这个白痴何时开始?
  2. 谁负责,需要受到惩罚?
  3. 为什么???
  4. 有没有的一方或双方合理一些简单的解决方法lsgrep案例?(例如,尝试grep --no-ignore-case没有结果. grep -P由于其实验性功能状态,这不是一个非常好的解决方法.)

regex unix linux shell grep

12
推荐指数
1
解决办法
2828
查看次数

重新排列条件评估会加快循环吗?

有点奇怪的是:我刚才有一位朋友告诉我重新安排这个示例for循环:

for(int i = 0; i < constant; ++i) {
    // code...
}
Run Code Online (Sandbox Code Playgroud)

至:

for(int i = 0; constant > i; ++i) {
    // code...
}
Run Code Online (Sandbox Code Playgroud)

会略微提高C++的性能.我没有看到如何将常量值与变量进行比较比反之亦然,并且我运行的一些基本测试没有显示两种实现之间的速度差异.测试这个Python while循环也是如此:

while i < constant:
    # code...
    i += 1
Run Code Online (Sandbox Code Playgroud)

VS:

while constant > i:
    # code...
    i += 1
Run Code Online (Sandbox Code Playgroud)

我错了吗?我的简单测试不足以确定速度变化吗?这是否适用于其他语言?或者这只是一个新的最佳实践?

c++ optimization premature-optimization micro-optimization

11
推荐指数
5
解决办法
1298
查看次数

使用正则表达式删除冗余换行符

我正在用PHP 开发一个服务站点,它只显示访问者发布的消息(理想情况是围绕网站的主题).任何人都可以每小时发布三条消息.

由于网站只有一页,我想控制每条消息的垂直长度.但是,我确实希望至少部分保留原始邮件中的换行符.折衷方案是允许两个换行符,但如果有两个换行符,则将它们替换为一行中总共两个换行符.Stack Overflow实现了这一点.

例如:

"豪猪\n是否\n \n \n \nporcupiney."

会变成

"豪猪是<br /> <br />豪猪."

检查换行符的一个棘手方面是它们被收集并存储为\ r \n,\ r或\n的可能性.我想过使用nl2br()将所有换行符转换为<br />,但这似乎没必要.

我的问题:在PHP中使用正则表达式(使用preg_match()和preg_replace()等函数),如何检查一行中两个以上换行符的实例(它们之间是否有空格),然后将它们更改为共有两个换行符?

php regex pcre line-breaks duplicates

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

Perl比bash更快吗?

我有一个bash脚本,它在两个时间戳之间切出一个日志文件的一部分,但由于文件的大小,运行需要很长时间.

如果我要在Perl中重写脚本,我可以实现显着的速度提升 - 或者我是否必须转向像C这样的东西才能实现这一目标?

#!/bin/bash

if [ $# -ne 3 ]; then
  echo "USAGE $0 <logfile(s)> <from date (epoch)> <to date (epoch)>"
  exit 1
fi

LOGFILES=$1
FROM=$2
TO=$3
rm -f /tmp/getlogs??????
TEMP=`mktemp /tmp/getlogsXXXXXX`

## LOGS NEED TO BE LISTED CHRONOLOGICALLY
ls -lnt $LOGFILES|awk '{print $8}' > $TEMP
LOGFILES=`tac $TEMP`
cp /dev/null $TEMP

findEntry() {
  RETURN=0
  dt=$1
  fil=$2
  ln1=$3
  ln2=$4
  t1=`tail -n+$ln1 $fil|head -n1|cut -c1-15`
  dt1=`date -d "$t1" +%s`
  t2=`tail -n+$ln2 $fil|head -n1|cut -c1-15`
  dt2=`date -d "$t2" +%s`
  if [ $dt …
Run Code Online (Sandbox Code Playgroud)

bash optimization perl comparison performance

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

C#中的Culture是否等同于Java中的Locale?

C#使用了Culture的概念.这在操作上类似于Java中的Locale还是在底层概念上存在显着差异?

c# java culture locale

11
推荐指数
2
解决办法
4018
查看次数

为什么这个按位右移似乎不起作用?

有人可以向我解释为什么面具根本没有向右移动吗?您可以使用任何代替1的结果,结果将是相同的.

unsigned mask = ~0 >> 1;
printf("%u\n", mask);
Run Code Online (Sandbox Code Playgroud)

c bit-manipulation binary-operators bit-shift not-operator

10
推荐指数
2
解决办法
2485
查看次数

需要正则表达式来匹配不能全为零的可变长度数字串

我需要验证表单上的输入.我期望输入是1到19位数之间的数字.输入也可以以零开头.但是,我想验证它们并非都是零.我有一个正则表达式,将确保输入是数字和1到19之间的数字.

^\d[1,19]$
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何包含一个检查,即整个字符串不是全零.我试过这个

^(![0]{1,19})(\d[1,19])$
Run Code Online (Sandbox Code Playgroud)

但它在0000000000000000001上失败,因为它允许可变数量的零.

如何检查整个字符串是不是零?

谢谢.

我试图在ASP.NET RegularExpressionValidator中这样做,所以我希望有一个表达式.我有其他选择,所以如果不能做到这一点我就不会运气.

regex validation pcre lookahead negative-lookahead

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

vim复制并替换文本

让我们说我有这样的文字:

$test = 'lorem';
$test2= 'ipsum';

我想复制lorem并粘贴到ipsum中.我试着做yi'lorem,然后继续使用ipsum,ci'但是用ipsum替换了我的pastebin.我以前的副本丢失了.

vim copy-paste

9
推荐指数
3
解决办法
5179
查看次数

为什么我在zsh中使用{1..9}会出现此错误?

我运行以下代码

zgrep -c compinit /usr/share/man/man{1..9}/zsh*
Run Code Online (Sandbox Code Playgroud)

我明白了

zsh: no matches found: /usr/share/man/man2/zsh*
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为以下工作

echo Masi{1..9}/masi
Run Code Online (Sandbox Code Playgroud)

这表明我的问题可能是Zsh中的一个错误.

以上是Zsh中{1..9}的错误吗?

shell zsh expansion

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

可以撤消class_alias()吗?

假设在单元测试中我想用class_alias()一个假类代替通常使用的类:

class_alias('MyFakeTestingClass', 'Some\Real\Class\Somewhere');
Run Code Online (Sandbox Code Playgroud)

有没有办法撤消这个操作,以便以后Some\Real\Class\Somewhere可以恢复正常使用?这不起作用:

class_alias('Some\Real\Class\Somewhere', 'Some\Real\Class\Somewhere');
Run Code Online (Sandbox Code Playgroud)

php

9
推荐指数
1
解决办法
267
查看次数