Regex:接受任何地方的空间,但在开始
Regex: Accepting space anywhere but at the beginning
我正在使用OS X上Qt4.8的Python绑定。
- 我想接受任何数字和其他几个字符和空白
- 字符串可以为空,也可以为任意长度
- 我不希望的是,字符串为空白或以空白结尾
我的工作示例:'[0-9pqw+-*#().][0-9pqw+-*# ().]*'
然而,我不想重复两个块,一个包含空格,一个不包含空格。我想应该有一个更好的方法,雇用[^],但怎么做呢?
第二个问题:
- 如果我想限制字符串的总长度,我该怎么做
谢谢。
您可以在模式的开始和结束处使用负查找:
^(?![ ])[0-9pqw+*# ().-]*(?<![ ])$
请注意,括号不是必需的,但有助于可读性。你的任何逃脱都不是(只要你把-
放在最后)。
这不是你想要的吗?
import re
re.match('^[^W].*[^W]$', ' aaa ')
(其中最后一个arg是测试字符串)。
如果您想确保长度小于一定的量,请使用大括号。一个字符已经花费在测试包含[^W]
表示法的测试字符串的第一个和最后一个字符上。因此,在本例中,当两边都没有空格并且测试字符串不超过4个字符时,就会出现匹配。
re.match('^[^W].{1,2}[^W]$', 'aaaa')
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 从父命名空间重载类型
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 在命名空间中定义函数还是限定函数
- C++:对不存在的命名空间使用命名空间指令
- 通过继承类使用来自不同命名空间的运算符
- 使用命名空间时出现多个定义错误
- OpenGL相机和相机空间转型的困惑
- CUDA内核和数学函数的显式命名空间
- 打印第二列时的2d字符矢量打印空间
- 嵌套的匿名命名空间
- CMakeLists.txt中的命名空间表示法
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 类是C++中的命名空间吗
- 在命名空间中使用全局命名空间中的函数
- 如何从头开始创建 avi 文件?
- Regex:接受任何地方的空间,但在开始
- 动态数组的Do实现在开始时保留空间,以备准备