我正在写一篇关于正则表达式的学期论文,我对在提到正则表达式时使用“匹配”这个词的方式有点困惑。以下哪项是正确使用的措辞:
- “正则表达式匹配字符串”
或者
- “字符串匹配正则表达式”
或者他们都是正确的?欢迎大家对此发表意见!我真的很想把这件事做对,我认为这对我的理解有很大帮助,以澄清这一点。
我正在写一篇关于正则表达式的学期论文,我对在提到正则表达式时使用“匹配”这个词的方式有点困惑。以下哪项是正确使用的措辞:
或者
或者他们都是正确的?欢迎大家对此发表意见!我真的很想把这件事做对,我认为这对我的理解有很大帮助,以澄清这一点。
我认为两者都是正确的。这取决于你关注的是什么。如果您的重点是正则表达式本身,以查看它是否适用于给定的字符串或一组字符串,那么您使用第一句话。相反,如果您对查看一组符合特定条件的字符串更感兴趣,则适用第二个。你知道,匹配在某些条件下具有某种等价的含义,所以这两个句子听起来都对我来说是等价的。
字符串与正则表达式模式匹配,因此我会说后者更准确
当两件事匹配时,(至少从逻辑角度来看)你提到它们的顺序无关紧要。
所以这取决于你想把重点放在什么上面。
字符串匹配正则表达式:焦点在字符串上。
正则表达式匹配字符串:焦点在正则表达式上。
后者对我来说听起来更好。正则表达式指定字符串可能匹配的模式。但两者都没有什么问题。
如果你对我说任何一个,我就会明白你在说什么。我敢肯定,人们都对我说过,我从没想过需要纠正其中任何一个。
由于正则表达式表示一组可能无限的有限字符串,我会说写成“字符串 s 匹配正则表达式 r”是最正确的。您也可以说“字符串 s 是由正则表达式 r 生成的集合的成员”。
此外,您应该考虑使用接受和拒绝这两个词,特别是如果您打算在论文中讨论有限自动机。
我同意字符串匹配(或不匹配)正则表达式。为了弄清楚我为什么要说:正则表达式定义了一个语法,给定的字符串要么根据该语法格式正确,要么不正确。
“正则表达式匹配字符串”
如果 RE 匹配整个字符串(例如,使用 ^ $ 或恰好匹配所有内容),则为真。否则,我会写:正则表达式在字符串中有匹配项。
“字符串匹配正则表达式”
同样,如果正则表达式匹配所有内容,则为 true,否则听起来有点奇怪。
但确实,在整个匹配的情况下,这两个句子是等价的。
由于您要在字符串中查找正则表达式,因此更正确的说法是您找到了正则表达式,因为这是一种单向关系。
但至于哪个匹配哪个,这是一种双向关系,这并不重要(无论如何,用英语 - 我不能保证其他语言),所以任何一个都是正确的。
我的偏好是说字符串与正则表达式匹配,因为 RE 是不变的部分并且字符串会发生变化。但这是个人喜好,不太可能对现实有任何影响:-)
“字符串与正则表达式匹配”似乎是“字符串采用正则表达式定义的语言并与正则表达式同构”的简写。
“正则表达式匹配字符串”似乎是“从正则表达式编译的解析器自动机将解析字符串并在最终状态下停止”的简写。
我会说:
在设计时,用户/开发人员创建一个匹配字符串的正则表达式。
在运行时,正则表达式引擎会找到与正则表达式匹配的字符串。
(不打算作为定义,只是常见用法的示例。)