首页 > 其他分享 >基本操作之——正则表达式

基本操作之——正则表达式

时间:2024-03-05 16:25:24浏览次数:22  
标签:return abba tuple 正则表达式 Result regexp 基本操作 match

1.定义

*  允许0 次或多次重复

+   允许1次或多次重复

?  允许0次或1次重复

{n,m}  允许n到m次重复

{n}  允许n次重复

^   匹配字符串开头
$   匹配字符串结尾
.   匹配除换行符外所有字符

2.事例

*正则表达式基本操作
tuple_regexp_match ('abba', 'ab*', Matches)
*return abb
tuple_regexp_match ('abbaa', 'ba*', Matches)
*return b
tuple_regexp_match ('abaa', 'ba*', Matches)
*return baa

tuple_regexp_match ('abba', 'a*b*', Result)
* Returns 'abb'

tuple_regexp_match ('abba', 'b*a*', Result)
* Returns 'a'

tuple_regexp_match ('babba', 'b*a*', Result)
* Returns 'ba'

tuple_regexp_match ('abba', 'b+a*', Result)
* Returns 'bba'

tuple_regexp_match ('abba', '.a', Result)
* Returns 'ba'

tuple_regexp_match ('abba', '[ab]*', Result)
* Returns 'abba'

tuple_regexp_match ('abba', '[ba]*', Result)
* Returns 'abba'

tuple_regexp_match (['img123','img124'], 'img(.*)', Result)
* Returns ['123','124']

tuple_regexp_match ('mydir/img001.bmp', 'img(.*)\\.(.*)', Result)
* Returns ['001','bmp']

tuple_regexp_test ('p10662599755', '[A-Z]*', Result)
* Returns 0

tuple_regexp_test ('p10662599755', ['[A-Z]*','ignore_case'], Result)
* Returns 1

tuple_regexp_test ('ababab', '(ab){3}', NumMatches)
*return 1

tuple_regexp_test ('abab', '(ab){3}', NumMatches)
*return 0

tuple_regexp_test ('abababa', '(ab){3}', NumMatches)
*return 1

tuple_regexp_test ('abababa', '^(ab){3}$', NumMatches)
*return 0

tuple_regexp_test ('ababab', '^(ab){3}$', NumMatches)
*return 1

tuple_regexp_replace ('abba', 'b*', 'x', Result)
*return xabba

tuple_regexp_replace ('abba', 'a*', 'x', Result)
*return xbba

tuple_regexp_replace ('abba', 'b', 'x', Result)
*return axba

tuple_regexp_replace ('abba', ['b','replace_all'], 'x', Result)
*return axxa

tuple_regexp_replace(['img10.bmp','img11.bmp','img12.bmp'], 'img(.*).bmp', 'out$1.txt', Result)
* Returns ['out10.txt','out11.txt','out12.txt']

tuple_regexp_replace (['SN/1234567-X','SN/2345678-Y','SN/3456789-Z'], 'SN/(\\d{7})-([A-Z])', 'Product Model $2, Serial Number $1', Result)
*return ['Product Model X, Serial Number 1234567', 'Product Model Y, Serial Number 2345678', 'Product Model Z, Serial Number 3456789']

tuple_regexp_replace (['01/04/2000','06/30/2007'], '(\\d{2})/(\\d{2})/(\\d{4})', 'Day: $2, Month: $1, Year: $3', Result)
*return ['Day: 04, Month: 01, Year: 2000', 'Day: 30, Month: 06, Year: 2007']



get_system ('image_dir', HalconImages)
get_system ('operating_system', OS)
if (OS{0:2} == 'Win')
    tuple_split (HalconImages, ';', HalconImagesSplit)
else
    tuple_split (HalconImages, ':', HalconImagesSplit)
endif
list_files (HalconImagesSplit[0], ['files','follow_links'], Files)
* 查找拓展名为png的文件
tuple_regexp_select (Files, '\\.png$', FilesPNG)

* 查找拓展名为png的文件,且剔除掉文件名最后为数字的文件
tuple_regexp_select (FilesPNG, ['\\d\\.png$','invert_match'], FilesNoDigit)

* 查找拓展名为png的文件,且只获取文件名称,不要完整路径,形如"8.png"
tuple_regexp_match (FilesNoDigit, '[^/\\\\]*.png', ShortNames)

* 更改文件的名称
tuple_regexp_replace (ShortNames, '(.*)\\.png$', 'out_$1.jpg', ConvertedNames)

* Count number of files with multi-word names (name contains hyphen or underscore)
tuple_regexp_test (ShortNames, '_|-', NumCombined)
* ***************************************************
* ***** Using regular expressions in HDevelop expressions
* ***************************************************
* Again count number of files with digit and calculate percentage
if (|ShortNames| > 0)
    Result := 100.0 * regexp_test(ShortNames,'\\d') / |ShortNames| + '% of PNG file names contain a digit'
endif
* Return letters 2-n of all files starting with 'a'
Result := regexp_match(regexp_select(ShortNames,'^a'),'^a(.*)')
* The operator =~ is short for regexp_test and useful for boolean expressions
if (ShortNames =~ '^z')
    Result := 'A filename starting with z exists'
endif

 

标签:return,abba,tuple,正则表达式,Result,regexp,基本操作,match
From: https://www.cnblogs.com/echo-efun/p/18054054

相关文章

  • 基本操作之——Unicode编码
    自版本18.11后,支持UTF-81.字符转Unicode码tuple_ord('s',Ord)dev_clear_window()dev_disp_text('\'s\'的Unicode码为'+Ord,'window','center','center','black','box_color','#00ffffc0......
  • 基本操作之——字符截取操作
    *字符截取操作 String1:='abcdefghij'String2:='0123456'Message:='字符截取操作'Message[1]:='String1:=\'abcdefghij\''Message[2]:='String2:=\'0123456\''dev_clear_window()dev_disp_te......
  • 基本操作之——多维空间欧几里得距离距离计算及标量积计算
    dev_clear_window()dev_disp_text('欧几里得距离计算','window',200,200,'black','box_color','#00ffffc0')V1:=[18.8,132.4,33,19.3]dev_disp_text('V1='+V1,'window',220,200,'black',......
  • 基本操作之——正弦函数绘制
    1.周期为2pi正弦函数绘制dev_close_window()dev_open_window(0,0,512,512,'black',WindowID)dev_set_part(0,0,511,511)old_x:=0old_y:=0Rate:=1dev_set_color('red')forx:=1to511by4y:=-sin(x/511.0*2*3.1416*Rate......
  • 基本操作之——位运算
    dev_clear_window()dev_disp_text('数128位左移两位为'+lsh(128,2),'window','center','center','black','box_color','#00ffffc0') dev_clear_window()dev_disp_text('数128位右移两位为'+rsh(12......
  • 说说对正则表达式的零宽断言的名词翻译理解
    我用一队学生里面找人的例子。一条队伍里面有多个叫小明的同学。如何找到自己想要的那个小明呢?可以根据小明前后同学的差别来区分,比如找后面跟着小红的那个小明。这就是零宽断言。类似的你可以说其他三种:后面跟着不是小红,前面是小红,前面不是小红.这里面有个疑惑就是名......
  • 基础操作之——tuple基本操作
    Tuple1:=[1,2,3,4,5]Number:=|Tuple1|dev_clear_window()dev_disp_text('Tuple1:=[1,2,3,4,5]'+'大小为'+Number,'window','center','center','black','box_color','#00ffffc0')......
  • linux 中正则表达式中?号的作用
     linux中正则表达式中?号的作用是匹配前面的字母0次或者1次;001、测试如下:[root@pc1test1]#lsa.txt[root@pc1test1]#cata.txt##测试样本abcdxyz133kkkkabdejjjddduabbcdejjjaaaeabbbcdejjj[root@pc1test1]#grep"abcd"a.txt......
  • matlab教程_台大lecture1基本操作和矩阵输入
    matlab教程视频matlabascalculatorcommendline直接用命令行计算部分ans是结果运算法则和平时一样((),^乘除加减)onlinehelpeg:helpsin&直接搜索嵌套式公式sin(cos(pi))==cos(pi)sin(ans)其中,ans是第一个的结果变量可以用who查看变量,whos详细信息一些保留......
  • python 正则表达式
    正则表达式(regularexpression)关于这个知识点菜鸟教程上介绍的很详细还有一个是介绍各种语言的正则表达式的正则表达式是一个特殊的字符序列,利用事先定义好的一些特定字符以及它们的组合组成一个“规则”,检查一个字符串是否与这种规则匹配来实现对字符的进行过滤。正则表达......