字符串的查找和替换

处理字符串时,常常遇到在给定字符串中查找指定子字符串,或者找到以后用另外的字符串进行替换的任务。本节介绍进行字符串查找和替换的方法。[大谦MATLAB,dqmatlab点com]

字符串的查找

【MATLAB】

MATLAB提供了多个函数来确定一个字符串在另一个字符串中的包含关系:

code.matlab
>> a="HeLABlo MATLAB";
>> b="LAB";

用strfind函数在a中查找b,返回b在a中出现的位置。默认时,区分大小写。

code.matlab
>> strfind(a,b)
ans =
     3    12

用contains函数判断a中是否包含b。

code.matlab
>> contains(a,b)
ans =
  logical
   1

用count函数返回a中包含b的个数。

code.matlab
>> count(a,b)
ans =
     2

用startsWith函数判断a是否以b打头。

code.matlab
>> startsWith(a,b)
ans =
  logical
   0

用endsWith函数判断a是否以b结尾。

code.matlab
>> endsWith(a,b)
ans =
  logical
   1

【Python】

使用字符串的find方法和rfind方法返回一个字符串在另一个字符串中首次出现的位置和最后出现的位置。

下面返回字符串'Py'在字符串'HePyllo Python'中首次和末次出现的位置。注意位置的基数为0。

code.python
>>> 'HePyllo Python'.find('Py')
2
>>> 'HePyllo Python'.rfind('Py')
8

用成员运算符in或not in计算指定字符串是否包含或不包含在另一个字符串中,成立时返回True,否则返回False。

code.python
>>> 'Py' in 'HePyllo Python'
True
>>> 'Py' not in 'HePyllo Python'
False

用字符串的count方法返回指定字符串在另一个字符串中出现的次数。例如计算字母a在字符串'abca'中出现的次数:

code.python
>>> 'HePyllo Python'.count('Py')
2

用字符串的startswith方法判断字符串是否以指定字符串打头,如果是,返回True,否则返回False。

code.python
>>> 'abcab'.startswith('abc')
True

用字符串的endswith方法判断字符串是否以指定字符串结尾,如果是,返回True,否则返回False。

code.python
>>> 'abcab'.endswith('ab')
True

字符串的替换

【MATLAB】

使用replace函数替换指定字符串中的子字符串。下面给定一个字符串a。

code.matlab
>> a="abcababcababcab";

使用replace函数在a中用“w”替换“a”。

code.matlab
>> replace(a,'a','w')
ans=
    "wbcwbwbcwbwbcwb"

使用strrep函数在a中用“w”替换“a”。

code.matlab
>> strrep(a,'a','w')
ans=
    "wbcwbwbcwbwbcwb"

【Python】

使用字符串的replace方法,用指定字符串替换给定字符串中的某个子字符串。该方法的语法格式为:

code.python
str.replace(str1,str2,num)

其中,str为给定的字符串,参数str1为给定字符串中被替换的子字符串,参数str2为用作替换的字符串,参数num指定替换不能超过的次数。当忽略num参数或指定num参数的值为-1时能替换的全部替换。

下面将给定字符串中的字母a替换为w,替换次数不能超过5次。

code.python
>>> 'abcababcababcab'.replace('a','w',5)
'wbcwbwbcwbwbcab '
>>> 'abcababcababcab'.replace('a','w')
'wbcwbwbcwbwbcwb'