2017-08-12 52 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_]+