ruby - 使用有序分隔符使用正则表达式解析字符串

标签 ruby regex string parsing delimiter

我有以下格式的字符串:

University/Class (Term)

我需要将它分成三个部分。我想出了 /\/|\s\(|\)/g 并且它对于简单的情况非常有效。不幸的是,这三个部分中的每一个都可以包含这三个定界符。例如:

University of StackOverflow (online)/Intro to asking questions (Fall2014)

最好的解决方案(我知道这并不完美)似乎是编写一个正则表达式,首先查找 \/,然后是 \s\(,然后最后是\),按照这个顺序。我找到了一些似乎暗示答案的答案,但在我的案例中,我被字符和字符串定界符的混合所抛弃。

我肯定仍在努力理解一般的正则表达式,所以我非常感谢一个解释清楚的解决方案。谢谢!

最佳答案

\/|\s\((?!.*\/)|\)(?!.*(?:\/|\s\())

试试这个。按这个拆分。看演示。

https://regex101.com/r/eZ0yP4/25

或者如果你愿意使用组,你可以试试这个 cn 捕获所有 ghe 组

(.*)\/(.*)\s\(([^\)]+)

查看演示。

https://regex101.com/r/eZ0yP4/26

关于ruby - 使用有序分隔符使用正则表达式解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27519582/

相关文章:

ruby - 单引号字符串中的反斜杠与双引号字符串

ruby - 无方法错误 : undefined method `yesterday' for Date:Class

java - 在Java正则表达式中组合or和否定?

c# - 检查后代是否匹配 C#

java - 如何在 Java 中验证字符串?

java - 获取字符串中特定单词之后的字符?

c# - 在 C# 中将字符串转换为标志枚举

javascript - 从javascript渲染部分,传递类变量的问题

ruby-on-rails - 不同环境读取同一个文件时Ruby字符编码困惑

php - 如何在 php 中使用正则表达式从字符串中提取用户名