2017-08-12 94 views
-1

我有这样的文字:如何删除我的正则表达式中的 n?

"('John', 0.55)\n" 

正则表达式:[^\n]([A-z]+)

,并希望只保留了名字约翰(不带引号或任何)。 我设法获得约翰,但我也得到了\ n不幸的是: http://www.regextester.com/?fam=98328

如何删除后者?

感谢

+0

的'[A-ZA-Z] +'就足够了。请注意,['[A-Z]'不仅仅匹配字母](http://stackoverflow.com/a/29771926/3832970)。你的字符串有一个换行符,而不是'\ n'(你的正则表达式小提琴是错误的)。 –

+0

@WiktorStribiżew我仍然在通常写作[A-z]的旁注上得到'n'末尾 – gihidoma

+0

@WiktorStribiżew,它似乎已经捕捉到*所有*大写和小写字母,[A-Za-z]如何不同? http://www.regextester.com/?fam=98329 – gihidoma

回答

1

在我的机器uqing QT(如你所示的C++)

[A-Za-z]+返回约翰

QRegExp re("[A-Za-z]+"); 
QString a = "('John', 0.55)\n"; 

int pos = re.indexIn(a); 
QStringList list = re.capturedTexts(); 
qDebug()<<"list: "<<list; 

返回:list: ("John")

0

您可以使用此:

([a-zA-Z0-9]+)(?:.|\\r?\\n)* 
0

如果字符串开头总是“(”你可以用这一个:

(?<=(?:["(']{3}))[A-Za-z0-9_]+