正则表达式不同类型的字符串

时间:2018-04-19 08:04:39

标签: javascript regex

我有一个字符串,我需要从中获取一部分,但字符串可能不同。

这是一些字符串选项:

"{{concentration=1}} charname=Mirajane \"Mira\" Felgrove"

"{{concentration=1}} {{charname=Mirajane \"Mira\" Felgrove}}"

"charname=Mirajane \"Mira\" Felgrove {{concentration=1}}"

无论如何,我只能得到以下部分吗?

Mirajane \"Mira\" Felgrove

感谢。

编辑:我现在在JS工作。 charname可以是任何东西;字母,数字,空格,其他字符,它可以位于字符串中的不同位置,并且包含或不包含{{}}。

2 个答案:

答案 0 :(得分:1)

您可以使用RegEx (?<=charname=)[^\n{}]*[^"\n{}]

  • (?<=charname=)确保charname=在您的比赛开始之前

  • [^\n{}]*只匹配newline{} 0次或以上的任何内容。

  • [^"\n{}]确保最后一个字符不是"newline{}

Demo.

答案 1 :(得分:0)

许多不同的正则表达式可以匹配这些字符串并为您提供预期的结果。也许您需要更准确地定义用例。

我看到的最简单的可能性之一是:

charname=([A-Za-z\"]+\s+[A-Za-z\"]+\s+[A-Za-z\"]+)

它查找litteral“charname =”后跟3个字母和引号字符串,并捕获除“charname =”之外的所有内容。 这个解决方案虽然不是很强大。

Results on Regex101 tester