所以一段时间以来,我一直在尝试匹配this类型的模式。我正在使用RegExr来测试我的东西,最终得到了这个:
(\[★+\] [A-Za-z0-9]\s?-?[A-Za-z0-9] ?\w+?\s?[A-Za-z0-9]\s?\w+ ?\[?[A-Za-z0-9]\w+\]?[A-Za-z0-9]\s?\w+ ?\[?[A-Za-z0-9]-?\w+\])
正如here所见,这几乎不能匹配所有内容。我对RegEx还是很陌生,但我发现这里的专家可以为我提供帮助。
正则表达式需要匹配每个分开的条目。试图建立数据库。
答案 0 :(得分:0)
尝试以下方法:\[(★||)+\](\s[❤\w-]+\s?)+\[[\w-]+\]
\[(★||)+\]
将[★] [] []与尽可能多的星星/树/蛋糕匹配
(\s[❤\w-]+\s?)+
匹配一个空格字符,后跟❤或A-Za-z0-9_或--后跟一个潜在的空格(0或1),并尽可能多地匹配
\[[\w-]+\]
匹配[,后跟尽可能多的A-Za-z0-9_或-后跟]
答案 1 :(得分:0)
由于我不了解规则,因此很难为您提供整洁的正则表达式;例如:
[]
之间行总是以ascii文本结尾吗?我可以给你一个“大”的正则表达式,但是可能会有副作用,更多的细节我们可以制作更好的正则表达式
^\[(.+)\] (.*?) \[([\w\-]+)\]$
https://regex101.com/r/eU7vis/1
^\[(.+)\]
获取并确保第一部分(图释简单或多个或[]
之间的任何字符)。如果您有限制,我们可以限制授权字符。
(.*?)
获取与我们不匹配下一部分的最少字符(任何字符)
\[[\w\-]+\]$
获取并确保字符串以[]
之间的文本结尾。这部分的授权字符为字母(上下),数字,下划线和连字符。