很不幸,我已经尝试过至少一年学习正则表达式,但由于使用频率太低而总是忘记。今年我的新年决心是不再尝试学习正则表达式 - 所以今年为了拯救我免受痛苦,我会向 Stack Overflow 寻求帮助。(去年圣诞混音)。
我想传入一个这样的字符串{getThis}
,并返回字符串getThis
。 有谁可以帮助我遵守我的新年决心吗?
相关问题:
很不幸,我已经尝试过至少一年学习正则表达式,但由于使用频率太低而总是忘记。今年我的新年决心是不再尝试学习正则表达式 - 所以今年为了拯救我免受痛苦,我会向 Stack Overflow 寻求帮助。(去年圣诞混音)。
我想传入一个这样的字符串{getThis}
,并返回字符串getThis
。 有谁可以帮助我遵守我的新年决心吗?
相关问题:
正则表达式用于获取包含在字符串中的花括号中的字符串数组,而不仅仅是找到第一个出现的。
/\{([^}]+)\}/gm
var re = /{(.*)}/;
var m = "{helloworld}".match(re);
if (m != null)
console.log(m[0].replace(re, '$1'));
.replace(/.*{(.*)}.*/, '$1')
这个更简单的方法,如果正则表达式没有匹配到内容,会返回整个字符串。上述代码片段可以更轻松地检测到匹配。
根据http://www.regextester.com的说法,这个正则表达式通常适用于js。 请尝试以下表达式:
([^{]*?)(?=\})
/([^{]*?)\w(?=\})/gmi
。 - Павло Коменда{}
(例如JSON文本):\{([^()]|())*\}
即使是在解决某人的问题时,这也对我有所帮助。
拆分大括号(
{}
)内部的内容,其模式类似于{'day': 1, 'count': 100}
。
例如:
#include <iostream>
#include <regex>
#include<string>
using namespace std;
int main()
{
//string to be searched
string s = "{'day': 1, 'count': 100}, {'day': 2, 'count': 100}";
// regex expression for pattern to be searched
regex e ("\\{[a-z':, 0-9]+\\}");
regex_token_iterator<string::iterator> rend;
regex_token_iterator<string::iterator> a ( s.begin(), s.end(), e );
while (a!=rend) cout << " [" << *a++ << "]";
cout << endl;
return 0;
}
输出:
[{'day': 1, 'count': 100}] [{'day': 2, 'count': 100}]
echo '/{id}/{name}/{age}' |
mawk NF=NF FS='(^|[}]+)(/[{]+|$)' OFS='\v'
id
name
age
你可以使用最平淡无奇的 ERE
轻松地将它们提取出来。
let str = "{something}";
str = str.slice(1,-1) // something
str.replace('{','').replace('}','').trim()
。 - lost-and-found