如何解决如何在Python中使用re Module实现$ letters*
我是Regex的初学者。,如果有人建议在这里学习更多关于re Module的好地方,我将不胜感激。
关于我的问题,基本上我正在玩它来寻找类似的东西:
$letters(content)
-
在 $ 和字母
之间没有\ s或\ t -
字母为 UPPER 或 LOWER 或 _ 或数字(但不是开头)
-
字母和(
之间的\ s或\ t -
必须以)
结尾
关于内容:
- 可以拥有:大写, LOWERCAE , DIGIT , $ letter2(..), 'word',“ word” ,,, +-* /%!,。
我想在这种情况下,您可以把它想象成一个函数调用。
所以简而言之,我如何实现找到这样的原型:
$Operation(10,$l_shift_byte($random(20)),"addition")
或
$MessageBox(0,"Hello There Bug Boi !\nYour Lucky Number is : "+ $toString((10 - $random(20))),MB_OK)
---------- [编辑/更新] ----------
我尝试过的方法(根据Stefan所说):
^(\s+\$|\$)[A-Za-z_]+(.*)
可以正常工作,但只要(..)内没有\ n 匹配在\ n停止的不可行情况示例:
$operation( 10,"\naddition")
也一直在处理它,并解决了这个问题:
^(\s+\$[A-Za-z_]+|\$[A-Za-z_]+)[0-9A-Za-z_]+(\s+\(|\()[\w\W]+(\)|\)\s)$
也无法按预期工作,例如,如果我尝试匹配此内容:
$ThisIsATest() $operatio8n_s ( 10," \naddition")$quit()
it返回所有内容,因为它以$ acceptable_ch4ars(...结束于)开头,继续,它应该返回:
[
'$ThisIsATest()','$operatio8n_s ( 10," \naddition")','$quit()'
]
先谢谢您!
解决方法
一个不错的起点始终是模块re的文档。
根据您的情况,可能的正则表达式为:
^\$[A-Za-z]+\(.*\)
找到两个示例字符串。
-
^
:匹配字符串的开头(您可能要删除它) -
\$
:与$
匹配,请注意,它是使用\
进行转义的 -
[A-Za-z]+
:匹配1个或多个小写或大写字母 -
\(
和\)
:与括号括起来 -
.*
:匹配除换行符0次或多次之外的所有内容
对于正则表达式,online regex tester可能会变得很方便。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。