regex - 如何在 Smalltalk 正则表达式中匹配 [ ?

标签 regex smalltalk pharo

我要配[在 Pharo 6 中的正则表达式中。

这工作正常:

| matcher |
matcher := RxMatcher forString: '\['.
matcher matches: '['. "produces true"

但是,我看不到如何在 [] 中执行此操作.都没有 [[]也不是 [\[]工作。

我可以匹配结束]很好用 []] ,但我不知道如何使用 [ .

最佳答案

不支持

查看RxParser>>atom的执行情况和 RxParser>>characterSet ,根本不支持范围集中的转义字符。

根据文档,其他“特殊”字符 (^,-,]) 只能由集合中的特定位置处理,因此不会触发不同分支的解析。

解决方法

一种解决方法是将范围集拆分为 or-ed 组,例如

[[a-z]

进入
(\[|[a-z])

更好的工具

请注意,Pharo 用户通常被指示使用 PetitParser 而不是正则表达式进行文本解析,因为 PetitParser 更易于管理和调试。至少可以说是一种更面向对象的正则表达式。

关于regex - 如何在 Smalltalk 正则表达式中匹配 [ ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45824000/

相关文章:

php - 匹配最佳相似数组元素

python - 重新子 uuid1() 的优雅方法?

删除字符串的一部分

error-handling - 文字记录的Smalltalk错误处理

smalltalk - 查找 token : in Pharo versus Dolphin Smalltalk

php - 在 php 中使用正则表达式删除 span 标签

c++ - 在 Smalltalk 中设计事务管理器

smalltalk - Pieradmin安装错误: Missing class ImageSegment

audio - 如何在 Pharo 中使用计算机麦克风作为声音输入

smalltalk - 如何使用依赖于基线的 #development 版本定义 ConfigurationOf?