首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Python中的re模块实现这个$letters(*)

如何用Python中的re模块实现这个$letters(*)
EN

Stack Overflow用户
提问于 2020-08-22 05:14:16
回答 1查看 61关注 0票数 0

我对Regex完全是个乞丐,如果有人建议在一个好地方学习更多关于realy的知识,我会很感激的。

至于我的问题,基本上我是在玩这个游戏,找出这样的东西:

代码语言:javascript
复制
$letters(content)
  • $字母之间没有\s或\t
  • 字母要么是上的,要么是下的_数字(但不是开头)。
  • 字母( )之间可能的\s或\t
  • 必须以)结尾

至于内容

  • 可以有:$letter2(..),大写、LOWERCAE数字‘word、“word”、E 153E 254E 155+-*/%!e 256E 157.E 258

你可以把它想象成一个函数,在这种情况下,我想。

所以简单地说,我怎样才能找到这样的原型:

代码语言:javascript
复制
$Operation(10, $l_shift_byte($random(20)), "addition")

代码语言:javascript
复制
$MessageBox(0, "Hello There Bug Boi !\nYour Lucky Number is : "+ $toString((10 - $random(20))), MB_OK)

我尝试了什么(从斯特凡说的):

^(\s+\$|\$)[A-Za-z_]+(.*)

它可以正常工作,但只要在( ..)在不工作的情况下,匹配停止在\n处的示例:

代码语言:javascript
复制
$operation( 10, $l_shift_byte($random(20)), "\naddition")

也一直在处理它,并得到了这样的结果:

^(\s+\$[A-Za-z_]+|\$[A-Za-z_]+)[0-9A-Za-z_]+(\s+\(|\()[\w\W]+(\)|\)\s)$

它也不像预期的那样工作,例如,如果我试图匹配以下内容:

$ThisIsATest() $operatio8n_s ( 10, $l_shift_byte($random(20)), " \naddition")$quit()

它返回一切,因为它以$acceptable_ch4ars开头(.并以)结尾,它应该返回:

代码语言:javascript
复制
[
    '$ThisIsATest()',
    '$operatio8n_s   ( 10, $l_shift_byte($random(20)), " \naddition")',
    '$quit()'
]

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-22 05:33:02

一个很好的起点总是模块回复的文档。

就你的情况而言,一个可能的准则是:

代码语言:javascript
复制
^\$[A-Za-z]+\(.*\)

找到两个示例字符串。

  • ^:匹配字符串的开头(您可能要删除这个)
  • \$:匹配$,注意它是使用\转义的
  • [A-Za-z]+:匹配一个或更多小写或大写字母
  • \(\):匹配括号
  • .*:匹配除换行符0或更多次以外的所有内容

当涉及regex时,在线判读仪可能变得很方便。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63532796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档