Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Regex不同类型的字符串_Javascript_Regex - Fatal编程技术网

Javascript Regex不同类型的字符串

Javascript Regex不同类型的字符串,javascript,regex,Javascript,Regex,我有一个字符串,我需要从中获取一部分,但是字符串可以不同 以下是一些字符串选项: "{{concentration=1}} charname=Mirajane \"Mira\" Felgrove" "{{concentration=1}} {{charname=Mirajane \"Mira\" Felgrove}}" "charname=Mirajane \"Mira\" Felgrove {{concentration=1}}" 我是否只能得到以下部分 Mirajane \"Mira\

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

以下是一些字符串选项:

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

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

"charname=Mirajane \"Mira\" Felgrove {{concentration=1}}"
我是否只能得到以下部分

Mirajane \"Mira\" Felgrove
谢谢

编辑:我现在在JS工作。这个名字可以是任何东西;字母、数字、空格和其他字符,它们可以位于字符串中的不同位置,也可以有{{}}包围或没有{{}包围。

您可以使用正则表达式


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

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

charname=([A-Za-z\"]+\s+[A-Za-z\"]+\s+[A-Za-z\"]+)
它查找literal charname=后跟3个字母和引号字符串,并捕获除charname=之外的所有内容。 不过,这个解决方案不是很健壮


要求是什么?什么工具或语言?你试过什么?@revo对不起,不要经常使用regex,我应该认真研究一下,并认为语言上没有区别。我现在在JS工作。charname可以是任何字母、数字、空格和其他字符,它可以位于字符串中的不同位置,也可以包含或不包含{{}}。你怎么知道OP的end regex风格支持lookbehinds?我没有。我只是发布一个解决方案。如果它不能解决OP的问题,他可以自由地告诉我。当一个问题只标记了正则表达式时,这意味着OP无法清除语言、工具或正则表达式。如果你花时间提供一个好的答案,如果你关心这段时间的花费,事先要求澄清。您在regex101中选择的regex-flavor-JS也不支持lookbehind。只是Chrome现在支持它,这意味着如果他们使用另一个浏览器,比如Firefox,OP会看到一个错误。我喜欢这个解决方案,因为我使用的是JS,它对我来说确实不起作用。我应该说得更清楚。@RobinKuiper在本例中使用charname=[^\n{}]*[^\n{}]取而代之,并获得$1。感谢您的回答,但我目前正在使用JS。charname可以是任何字母、数字、空格和其他字符,它可以位于字符串中的不同位置,也可以包含或不包含{{}。