小编gho*_*nsd的帖子

python的re:如果正则表达式包含在字符串中,则返回True

我有一个像这样的正则表达式:

regexp = u'ba[r|z|d]'
Run Code Online (Sandbox Code Playgroud)

如果单词包含bar,bazbad,则函数必须返回True .简而言之,我需要用于Python的正则表达式模拟

'any-string' in 'text'
Run Code Online (Sandbox Code Playgroud)

我怎么才能意识到这一点?谢谢!

python regex

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

在Python中将位列表转换为整数

我在Python中有这样的列表:[1,0,0,0,0,0,0,0].我可以将它转换为整数,就像我输入0b10000000(即转换为128)一样吗?我还需要将序列转换[1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0]为整数(这里它将返回0b1100000010000000,即259).如果有必要,列表长度始终是8的倍数.

python arrays bit-manipulation list

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

使用Magick ++获取像素颜色?

我已经问过这个问题,但那是关于FreeImage.现在我正在尝试做同样的事情ImageMagick(更正确,有Magick++).

我需要的是获得图像中像素的RGB值,并能够将其打印到屏幕上.我在ImageMagick论坛上问了这个,但似乎没有人在那里.:-(有人可以帮帮忙吗?

c++ imagemagick magick++

8
推荐指数
1
解决办法
5094
查看次数

C++:获取数组中char元素的索引

我需要获取数组中的字符数.

const char myarray[5] = {'0', 'a', 'e', 'f', 'c'}; // Create array of char
int number=0; // Create variable
number = getposition(myarray, 'f'); // Now number equals to 3
number = getposition(myarray, 'z'); // -1, because array doesn't have this char
Run Code Online (Sandbox Code Playgroud)

我的任务很简单,因为数组没有重复的字符(例如,它不能像这样:{'a','1','f','a'}).我该怎么做?

c++ arrays char

7
推荐指数
3
解决办法
4万
查看次数

Boost Gzip过滤器:编译failes

我正在尝试从Boost Gzip过滤器页面编译示例:

#include <fstream>
#include <iostream>
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/copy.hpp>
#include <boost/iostreams/filter/gzip.hpp>

int main() 
{
    using namespace std;

    ifstream file("hello.gz", ios_base::in | ios_base::binary);
    filtering_streambuf<input> in;
    in.push(gzip_decompressor());
    in.push(file);
    boost::iostreams::copy(in, cout);
}
Run Code Online (Sandbox Code Playgroud)

可悲的是,我的g ++返回错误:

gzlib.cpp: In function ‘int main()’:
gzlib.cpp:12:3: error: ‘filtering_streambuf’ was not declared in this scope
gzlib.cpp:12:23: error: ‘input’ was not declared in this scope
gzlib.cpp:12:30: error: ‘in’ was not declared in this scope
gzlib.cpp:13:29: error: ‘gzip_decompressor’ was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

这个函数有什么问题以及如何修改它以使其工作?非常感谢!

链接到Boost Gzip过滤器:http://www.boost.org/doc/libs/release/libs/iostreams/doc/classes/gzip.html

c++ gzip zlib

6
推荐指数
1
解决办法
2023
查看次数

C++ extern:指针与引用

我有三个类:ConsoleInputStream,ConsoleOutputStream,ConsoleErrorStream.所有这些都源于Stream.

每个流有虚函数readwrite; 你猜,当用户尝试使用ConsoleInputStreamwrite成员函数,它抛出一个错误.当用户试图使用同样的情况ConsoleOutputStreamwrite功能.

现在是时候展示代码了.

// STREAM.HPP
namespace streamlib {
extern ConsoleInputStream stdin_default;
extern ConsoleOutputStream stdout_default;
extern ConsoleErrorStream stderr_default;
extern Stream& stdin;
extern Stream& stdout;
extern Stream& stderr;
} // namespace streamlib


// STREAM.CPP
namespace streamlib {
ConsoleInputStream stdin_default;
ConsoleOutputStream stdout_default;
ConsoleErrorStream stderr_default;
Stream& stdin = stdin_default;
Stream& stdout = stdout_default;
Stream& stderr = stderr_default;
} // namespace streamlib


// MAIN.CPP …
Run Code Online (Sandbox Code Playgroud)

c++ extern

6
推荐指数
1
解决办法
719
查看次数

Python:用于捕获数据的正则表达式

我想请你帮忙.

我有一大块数据,看起来像这样:

     a
  b : c 901
   d : e sda
 v
     w : x ads
  any
   abc : def 12132
   ghi : jkl dasf
  mno : pqr fas
   stu : vwx utu
Run Code Online (Sandbox Code Playgroud)

说明:文件以包含单个单词的行开头(它可以以空格开头,空格也可以在单词后面),然后跟随冒号分隔的属性行(也可以有空格),然后是属性行或行与一个字.我无法创建正确的正则表达式以这种形式捕获它:

{
  "a": [["b": "c 901"], ["d", "e sda"]],
  "v": [["w", "x ads"]],
  "any": ["abc", "def 12132"], ["ghi", "jkl dasf"],
  # etc.
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

regex = str()
regex += "^(?:(?:\\s*)(.*?)(?:\\s*))$",
regex += "(?:(?:^(?:\\s*)(.*?)(?:\\s*):(?:\\s*)(.*?)(?:\\s*))$)*$"
pattern = re.compile(regex, re.S | re.M)
Run Code Online (Sandbox Code Playgroud)

但是,它找不到我需要的东西.你可以帮帮我吗?我知道我可以在没有正则表达式的情况下处理文件,使用逐行迭代器并检查":"符号,但是文件太大而无法以这种方式处理它(如果你知道如何在没有正则表达式的情况下快速处理它,这也将是正确答案,但首先想到的是太慢了).

提前致谢!

PS在规范形式的文件中看起来像这样:

a
  b : …
Run Code Online (Sandbox Code Playgroud)

python regex

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

创建二进制PBM/PGM/PPM

我正在尝试了解如何创建二进制PBM/PGM/PPM文件.据我所知,每种格式有两种类型:普通格式和原始格式.例如,黑色PBM 5x5的结构如下所示:

P1
# This is a comment
5 5
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)

所以你看它很简单:白色是0,黑色是1.但是,PBM有原始版本,如下所示:

'P4\n# This is a comment\n5 5\n\xf8\xf8\xf8\xf8\xf8'
Run Code Online (Sandbox Code Playgroud)

我该怎么做?PBM格式的描述说:

A raster of Height rows, in order from top to bottom. Each row is Width bits, packed 8 to a byte, with don't care bits to fill out the last byte in the row. Each bit represents …

python pbmplus

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

从PyQt中的QPushButton获取文本

我正在尝试从QtGui.QPushButton对象列表创建一个简单的键盘。

class XKeyboard(QtGui.QWidget):
  '''Special virtual keyboard for any language.'''
  def __init__(self, parent=None):
    QtGui.QWidget.__init__(self, parent)
    self.MainLayout = QtGui.QVBoxLayout()
    self.TextEntry = QtGui.QTextEdit()
    self.Keyboard = QtGui.QVBoxLayout()
    self.MainLayout.addWidget(self.TextEntry)
    self.MainLayout.addLayout(self.Keyboard)
    self.setLayout(self.MainLayout)

  def addRow(self, keys):
    layout = QtGui.QHBoxLayout()
    buttons = [QtGui.QPushButton(unicode(key)) for key in keys]
    for button in buttons:
      key = keys[buttons.index(button)]
      layout.addWidget(button)
      button.clicked.connect(
          lambda key: self.keyClick(key))
      self.keyClick(key)
    self.Keyboard.addLayout(layout)

  def keyClick(self, key):
    self.TextEntry.insertPlainText(key)
Run Code Online (Sandbox Code Playgroud)

问题是lambda返回False而不是键。我究竟做错了什么?

python qt pyqt pyqt4 qt-signals

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

pthread:破坏全局静态互斥体

此代码取自理查德史蒂文斯撰写的UNIX环境中的第3版高级编程.这是如何制作可重入版本的示例getenv().这里只是为了学习目的.

/* Copyright (c) W.R.Stevens */
#include <string.h>
#include <errno.h>
#include <pthread.h>
#include <stdlib.h>

extern char **environ;

pthread_mutex_t env_mutex;

static pthread_once_t init_done = PTHREAD_ONCE_INIT;

static void
thread_init(void)
{
    pthread_mutexattr_t attr;

    pthread_mutexattr_init(&attr);
    pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
    pthread_mutex_init(&env_mutex, &attr);
    pthread_mutexattr_destroy(&attr);
}

int
getenv_r(const char *name, char *buf, int buflen)
{
    int i, len, olen;

    pthread_once(&init_done, thread_init);
    len = strlen(name);
    pthread_mutex_lock(&env_mutex);
    for (i = 0; environ[i] != NULL; i++) {
        if ((strncmp(name, environ[i], len) == 0) &&
          (environ[i][len] == '=')) {
            olen = …
Run Code Online (Sandbox Code Playgroud)

c pthreads reentrancy

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