Вы можете выполнить это с использованием регулярных выражений и без них. Вы можете просто добавить символ '-'
в text_to_search
и использовать поиск для поиска новой строки
lines = ['x = vR32_ALEX - vR33_ALAN; \n',
'y = vR33_ALAN; \n']
text_to_search = 'vR33_ALAN'
replacement_text = 'vR33_ALAN*c'
for line in lines:
if line.find('- '+text_to_search)!=-1:
print(line)
else:
print(line.replace(text_to_search, replacement_text),end='')
Или вы можете использовать модуль re, как предложено, для этого вам нужно сгенерировать шаблон для искать, как вы ищете '-'
или добавить text_to_search
, как и раньше. (.*)
указывает, что не имеет значения символы до и после шаблона.
import re
lines = ['x = vR32_ALEX - vR33_ALAN; \n',
'y = vR33_ALAN; \n']
for line in lines:
if re.match('(.*)'+' - '+'(.*)',line):
print(line)
else:
print(line.replace(text_to_search, replacement_text),end='')
Шаблон '(.*)'+' - '+text_to_search+'(.*)'
также должен работать. Надеюсь, это поможет
Это зависит от того, какие столбцы и строки вам подходят, но вы можете использовать этот фрагмент кода:
for (int i = 0; i < values.GetLength(0); i++)
Console.WriteLine(values[i, 0]);
И:
for (int i = 0; i < values.GetLength(1); i++)
Console.WriteLine(values[0, i]);
Вот код для итерации по первому и второму измерениям массива двухмерного массива. (На самом деле "строк" и "столбцов" не существует, потому что многомерный массив может иметь любое количество измерений)
object[,] values = new object[5,5];
int rowIWant = 3; //Make sure this is less than values.GetLength(0);
//Look at one "row"
for(int i = 0; i < values.GetLength(1); i++
{
//Do something here with values[rowIWant, i];
}
int columnIWant = 2; //Make sure this is less than values.GetLength(1);
//Look at one "column"
for(int i = 0; i < values.GetLength(0); i++
{
//Do something here values[i, columnIWant];
}
В многомерных массивах нет строк и столбцов в том виде, в котором вы к ним обращаетесь - у них просто есть несколько индексов, используемых для доступа к значениям. Итерация по такому массиву будет выполняться с использованием вложенных циклов for, и если вы хотите выполнить определенные вычисления на основе измерения, вы должны соответствующим образом изменить порядок циклов.
Другой вариант, если вам нужно только выполнить итерацию в одном измерении, это использовать массив массивов вместо многомерного массива, например:
object[][] values;