У меня есть строка, как это:Как изменить порядок двух слов в строке?
$a = "Mike , Tree ";
Я хочу обратить его "Tree, Mike"
.
Есть ли какая-нибудь функция для этого?
У меня есть строка, как это:Как изменить порядок двух слов в строке?
$a = "Mike , Tree ";
Я хочу обратить его "Tree, Mike"
.
Есть ли какая-нибудь функция для этого?
Если вы гарантировано ваша строка, которую вы хотите, чтобы быть полностью будут разделены запятыми, то я бы разделить строку на запятой, а затем пройти через массив это производит от длины до 0 и добавляет его в пустую строку.
Разделите строку на две строки, переверните их и присоедините к ним.
Или используйте регулярное выражение:
$a =~ s/(.+),(.+)/\2,\1/g;
Лучше, чем Roque ответ с моей точки зрения, поскольку регулярное выражение позволяет вам больше контролировать, как справляться с дополнительным пространством. В вашем случае я бы точно сделал $ a = ~ s/(\ S +) \ s *, \ s * (\ S +)/\ 2, \ 1/g; – radius
\ 1 и т. Д. На заменяемой стороне устарела и будет вызывать предупреждение; сделайте это вместо этого: '$ a = ~ s /(.+),(.+)/$ 2, $ 1/g;' – ysth
Его хороший ответ – Tree
Просто для вашей проблемы.
$a =~ s/([A-Za-z]+)([^A-Za-z]+)([A-Za-z]+)/$3$2$1/;
[[email protected] trunk]$ perl -E '$a = "Mike , Tree "; $a =~ s/([A-Za-z]+)([^A-Za-z]+)([A-Za-z]+)/$3$2$1/; say $a;'
Tree , Mike
я не знаю, какой из них я могу принят ответ .. потому как ответ хороший ... – Tree
ли изменился пробельные существенным? – Svante
yes ................. – Tree