我的正则表达式真的很烂,所以请帮助我。
我需要在字符串中找到任何片段,例如 #text
。
text
不得包含任何空格字符 (\\s
)。它的长度必须至少为 2 个字符 ({2,}
),并且它必须至少包含 1 个字母 (QChar::isLetter()
)。
示例:
#c
,#1
,#123456
,#123 456
,#123_456
不正确#cc
,#text
,#text123
,#123text
都是正确的
我使用 QRegExp。
最佳答案
QRegExp rx("#(\\S+[A-Za-z]\\S*|\\S*[A-Za-z]\\S+)$");
bool result = (rx.indexIn(str) == 0);
rx 要么找到一个非空白后跟一个字母和未指定数量的非空白字符,要么找到一个后跟至少一个非空白的字母。
关于c++ - 使用 RegExp 检测像 "#smth"这样的文本(还有一些术语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11131729/